創建列表
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);