我有一个这样定义的类:
class A
{
int contractID;
string name;
string blah;
etc...
}
存储在List()中的多个ClassA存储。我和基于列表中的所有ContractID创建一个List。在LINQ中是否有办法能够执行此操作而不是迭代List()?
答案 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);