创建列表<;int>;从列表<;类>;
本文关键字:gt lt 列表 int 创建 | 更新日期: 2023-09-27 18:19:32
我有一个定义如下的类:
class A
{
int contractID;
string name;
string blah;
etc...
}
List()中存储了多个ClassA。我和根据列表中的所有ContractID创建一个列表。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);