2012-01-03 87 views
0

创建列表 我有一个是这样定义的类: 从列表<class>

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

多ClassA的被存储的存储列表()。我并根据列表中的所有ContractID创建一个List。有没有办法在LINQ能够做到这一点,而不是迭代List()?

回答

8

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

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

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

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

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

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

0

如果你有一个列表,你可以做一个列表与LINQ这样

List<int> contractIDs = mycollection.Select(a => a.ContractID).ToList(); 
0
var list = new List<ClassA>(); 
...    
list.Select(a => a.ContractID);