【问题标题】:Add datelist to Array collections C#将日期列表添加到数组集合 C#
【发布时间】:2016-08-01 19:33:22
【问题描述】:

我有 30 个包含用户数据的字符串 [4] 元素。我有 30 个日期的通用列表集合。如何将每个日期添加为每个字符串 [] 集合中的第 5 个元素?

List<string> _datefromexcel = new List<string> ();
foreach(DataColumn c in dtRow.Table.Columns) {
    if (Information.IsDate(c.ColumnName)) {
        _datefromexcel.Add(c.ColumnName);
    }
}

List<string> newlist = lst.GetRange(startrange, count);

int i = 0;
var query = from s in newlist
let num = i++
    group s by num / 4 into g
select g.ToList();
var results = query.ToArray();

foreach(var item in _datefromexcel) {
    results.insert(5, item);
}

这是在第 5 个元素之后插入所有日期值。

请建议将每个日期值作为 5 个元素插入数组集合中的最佳方法。

【问题讨论】:

    标签: arrays linq foreach


    【解决方案1】:

    对于初学者,您将无法将任何内容“插入”到数组中,因为它具有静态大小。但是,您可以将内容添加到列表中,因为列表可以动态调整自身大小。

    var results = query.ToList();
    
    foreach (var item in _datefromexcel) {
        results.Add(item.ToString());
    }
    

    如果需要,可以在foreach循环结束后调用ToArray:

    return results.ToArray();
    

    【讨论】:

      【解决方案2】:

      您可以改用for 循环:

      var results = query.ToArray();
      
      for (int i = 0; i < results.Length; i++)
           results[i].Add(_datefromexcel[i]);
      

      LINQ方式会有点丑:

      var results = query.Zip(_datefromexcel, (l, d) => l.Concat(new[] { d }).ToList()).ToArray();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-13
        • 2021-03-16
        • 2014-08-22
        相关资源
        最近更新 更多