模拟一个集合 里面是设备号和每日的日期
问题: 需要模拟一个集合 里面是设备号和每日的日期
代码如下:
static void Main(string[] args){string equipmentCodePar = "";DateTime time = DateTime.Now; // 获取当前时间DateTime startDate = time.AddDays(1 - time.Day);//获取当前月第一天DateTime endDate = startDate.AddMonths(1).AddDays(-1); // 例:2023年1月31日List<string> Sclist = new List<string>() { "S01", "S02", "S03", "S04", "S05", "S06", "S07", "S08", "S09" };if (!string.IsNullOrEmpty(equipmentCodePar)) Sclist = Sclist.Where(p => p.Contains(equipmentCodePar)).ToList();//var equipmentDateCombinations =from equipmentCode in Sclist.Select(info => info)from date in Enumerable.Range(0, (endDate - startDate).Days + 1).Select(offset => startDate.AddDays(offset)) select new { EquipmentCode = equipmentCode, Date = date.Date };Console.WriteLine("day"+(endDate - startDate).Days);foreach (var i in Enumerable.Range(0, (endDate - startDate).Days + 1)){Console.WriteLine(i);}Console.WriteLine();}
主要使用了
Enumerable.Range(0, (endDate - startDate).Days + 1).Select(offset => startDate.AddDays(offset))
在微软的官方文档中 Enumerable.Range
// Generate a sequence of integers from 1 to 10
// and then select their squares.
IEnumerable<int> squares = Enumerable.Range(1, 10).Select(x => x * x);foreach (int num in squares)
{Console.WriteLine(num);
}/*This code produces the following output:149162536496481100
*/