【发布时间】:2020-08-27 12:23:31
【问题描述】:
假设我有一个具有两个数字属性的类,我创建了一堆。
public class TwoNumbers
{
public TwoNumbers(int first, int second)
{
First = first;
Second = second;
}
public int First { get; set; }
public int Second { get; set; }
}
有没有办法使用 LINQ 或 lambda 查询将每个对象的 First 和 Second 添加到整数列表中?例如:
List<TwoNumbers> twoNumbersList = new List<TwoNumbers>()
{
new TwoNumbers(1,1),
new TwoNumbers(32,59),
new TwoNumbers(-12,200),
}
// Can I populate a list of integers upon assignment with a LINQ or lambda query?
List<int> integersVerbose = new List<int>()
foreach (var tn in twoNumbersList)
{
integersVerbose .Add(tn.First);
integersVerbose .Add(tn.Second);
}
// Desired syntax
var integersConcise = twoNumbersList. /* some expression */ .ToList(); // Automatically infers type from query
// Print the numbers
integersVerbose.Foreach(x => Console.WriteLine(x));
integersConcise.Foreach(x => Console.WriteLine(x));
// Expected output:
// 1
// 1
// 32
// 59
// -12
// 200
// 1
// 1
// 32
// 59
// -12
// 200
我知道有一个 SelectMany 方法,但它在这里似乎没有用,因为我不想从对象中提取集合,我只想要一个带有数字的平面列表。
【问题讨论】: