从元组列表到对象列表的选择C#

时间:2014-02-12 11:20:46

标签: c# linq type-conversion tuples

在我的C#代码中,我有一个列表List<Tuple<int,string>>。我想选择/转换为List<Type>。我想避免迭代我的元组列表并插入其他列表。有没有办法做到这一点?也许用LINQ?

2 个答案:

答案 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不会避免循环,它只是隐藏它们。