是否可以初始化List
个int
(基元/值类型),其枚举值为List
objects
包含所需的records
整数属性?
我有一个List<Record>
,RecordId's
的列表,其中包含List<int>
。
是否可以按以下方式初始化这些RecordId's
List<Record> records;
List<int> recordIds = new List<int> { records.GetEnumerator().Current.RecordId };
:
figsize=(3+i/3,2+i/4)
答案 0 :(得分:3)
其中任何一个都应该有用。
List<int> recordIds = new List<int>(records.Select(e => e.RecordId));
或
List<int> recordIds = records.Select(e => e.RecordId).ToList();
在封面下,这些实际上是相同的,所以我会使用你认为最具可读性的那些。
答案 1 :(得分:2)
另一种解决方案是:
List<int> recordIds = new List<int>(records.Count);
foreach(var record in records)
recordIds.Add(record.RecordId);
或使用查询语法:
IEnumerable<int> recordIds =
from record in records
select record.RecordId;
答案 2 :(得分:1)
首先,编写一个接受record
的函数并生成所需的整数。
public int GetID(Record r)
{
return r.RecordId;
}
您也可以写为lambda。
r => r.RecordId;
然后将该函数传递给LINQ的Select
方法:
//using System.Linq;
var result = records.Select(GetID);
请注意,GetID
已通过,而不是GetID()
。您希望传递对函数的引用,而不是函数的结果。
你也可以传递lambda,这是一种更常见的方法:
var result = records.Select( r => r.RecordId );
如果您想最终得到一个列表,只需将ToList()
添加到最后。
var result = record.Select( r => r.RecordId ).ToList();