在我的C#代码中,我有一个列表List<Tuple<int,string>>
。我想选择/转换为List<Type>
。我想避免迭代我的元组列表并插入其他列表。有没有办法做到这一点?也许用LINQ?
答案 0 :(得分:2)
您无法更改列表类型。您只能创建另一种类型的新列表,并使用列表中的转换值填充它。我建议使用List<T>.ConvertAll
方法,该方法完全用于此目的:
List<Tuple<int, string>> tuples = new List<Tuple<int, string>>();
// ...
List<YourType> types =
tuples.ConvertAll(t => new YourType { Foo = t.Item1, Bar = t.Item2 });
答案 1 :(得分:1)
您尚未显示此类型,但我认为它包含int
- 和string
- 属性:
List<MyType> result = tupleList
.Select(t => new MyType { IntProperty = t.Item1, StringProperty = t.Item2 })
.ToList();
另一种选择:List.ConvertAll
:
List<MyType> result = tupleList.ConvertAll(t => new MyType { IntProperty = t.Item1, StringProperty = t.Item2 });
这假设您的List<Type>
实际上是List<CustomType>
(我称之为MyType
)。
我想避免迭代我的元组列表并插入其他列表。
LINQ不会避免循环,它只是隐藏它们。