创建列表<;int>;从列表<;类>;

本文关键字:gt lt 列表 int 创建 | 更新日期: 2023-09-27 18:19:32

我有一个定义如下的类:

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

List()中存储了多个ClassA。我和根据列表中的所有ContractID创建一个列表。LINQ中有没有一种方法可以做到这一点,而不是通过List()进行迭代?

创建列表<;int>;从列表<;类>;

您可以使用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);