创建列表
class A
{
int contractID;
string name;
string blah;
etc...
}
多ClassA的被存储的存储列表()。我并根据列表中的所有ContractID创建一个List。有没有办法在LINQ能够做到这一点,而不是迭代List()?
创建列表
class A
{
int contractID;
string name;
string blah;
etc...
}
多ClassA的被存储的存储列表()。我并根据列表中的所有ContractID创建一个List。有没有办法在LINQ能够做到这一点,而不是迭代List()?
您可以使用Select
扩展方法创建contractID的投影。像:
var listOfClass = new List<ClassA>(); //Or however you get your list.
var contractIDs = listOfClass.Select(x => x.contractID).ToList();
var onlyContractIDs = myList.Select(x => x.contractID).ToList()
List<ClassA> input = ...;
List<int> output = input.Select(a => a.contractID).ToList();
Select
是一个通用的方法。明确指定,它将是Select<ClassA, int>
,指定输入和输出类型。
ToList()
最后从IEnumerable<int>
转换为List<int>
,它现在对输入列表进行迭代,而不是在枚举IEnumerable<int>
时进行迭代。
如果你有一个列表,你可以做一个列表与LINQ这样
List<int> contractIDs = mycollection.Select(a => a.ContractID).ToList();
var list = new List<ClassA>();
...
list.Select(a => a.ContractID);