从列表<class> </class> </int>创建List <int>

时间:2012-01-03 22:08:04

标签: c# linq

我有一个这样定义的类:

class A
{
 int contractID;
 string name;
 string blah;
 etc...
}

存储在List()中的多个ClassA存储。我和基于列表中的所有ContractID创建一个List。在LINQ中是否有办法能够执行此操作而不是迭代List()?

5 个答案:

答案 0 :(得分:8)

您可以使用Select扩展方法创建contractID的投影。像:

var listOfClass = new List<ClassA>(); //Or however you get your list.
var contractIDs = listOfClass.Select(x => x.contractID).ToList();

答案 1 :(得分:0)

var onlyContractIDs = myList.Select(x => x.contractID).ToList()

答案 2 :(得分:0)

List<ClassA> input = ...;
List<int> output = input.Select(a => a.contractID).ToList();

Select是一种通用方法。明确指定,它将是Select<ClassA, int>,指定输入和输出类型。

最后的ToList()IEnumerable<int>转换为List<int>,它现在对输入列表进行迭代,而不是枚举IEnumerable<int>

答案 3 :(得分:0)

如果你有一个List,你可以像这样使用LINQ创建一个List

List<int> contractIDs = mycollection.Select(a => a.ContractID).ToList();

答案 4 :(得分:0)

var list = new List<ClassA>();
...            
list.Select(a => a.ContractID);