使用 Linq 从数字列表创建类列表 [重复]
Posted
技术标签:
【中文标题】使用 Linq 从数字列表创建类列表 [重复]【英文标题】:Create list of class from list of numbers using Linq [duplicate] 【发布时间】:2019-11-01 06:16:00 【问题描述】:我有一个数字列表:
List<Int32> numbers = new List<Int32> 1, 2, 5, 6, 18, 28, 40, 62 ;
还有以下类:
public class Measure
public DateTime Created get; set;
public Int32 Value get; set;
我需要创建一个 Measure 列表,其中:
-
每个测量值都是列出的值之一;
创建的每个度量都是从 DateTime.Now 开始的一天,并以一天为增量。
所以 Measure 列表应该是这样的:
DateTime.Now, 1
DateTime.Now.AddDays(1), 2
DateTime.Now.AddDays(2), 5
...
是否可以使用 Linq 创建此列表?
【问题讨论】:
numbers.Select((x, i) => new Measure Value = x, Created = DateTime.Now.AddDays(i) )
【参考方案1】:
让我们试试Select((value, index) => ...)构造:
List<Int32> numbers = new List<Int32> 1, 2, 5, 6, 18, 28, 40, 62 ;
List<Measure> result = numbers
.Select((value, index) => new Measure()
Created = DateTime.Now.AddDays(index),
Value = value
)
.ToList();
【讨论】:
【参考方案2】:是的,你可以:
List<Int32> numbers = new List<Int32> 1, 2, 5, 6, 18, 28, 40, 62 ;
int dayCounter = 0;
var measureList = numbers.Select(
x => new Measure
Value = x,
Created = DateTime.Now.AddDays(dayCounter++)
).ToList();
【讨论】:
以上是关于使用 Linq 从数字列表创建类列表 [重复]的主要内容,如果未能解决你的问题,请参考以下文章