【问题标题】:c# - Creating new list for each iteration in for loopc# - 为for循环中的每次迭代创建新列表
【发布时间】:2020-03-16 22:17:28
【问题描述】:

我有一个看起来像这样的 for 循环

List<string> OffReportColumns = new List<string>(7);
     foreach (Site s in sites)
            {
                OffReportColumns.Add(s.Name);
                OffReportColumns.Add("");
                OffReportColumns.Add("");
                OffReportColumns.Add("Average Cost");
                OffReportColumns.Add("");
                OffReportColumns.Add("");
                OffReportColumns.Add("Average Cost With Labour");
             }

在我的“站点”表中,我有 5 个站点。我想为表中的每个站点创建一个单独的列表。目前我的方法只是列出一个列表,然后对其进行扩展。

【问题讨论】:

  • 只需在循环外创建一个 List> ...并将 List 移动到循环内
  • @JonathanAlfaro 但是列表每次都会被覆盖
  • 不,它没有......这超出了循环 List> OffReportColumns = new List>(); ......然后在循环中创建一个像这样的列表 List otherlist = new List(7);然后在循环中将列表添加到列表列表中,如下所示: OffReportColumns.Add(otherlist)

标签: c# asp.net-mvc list


【解决方案1】:

您可以使用Select

var results = sites.Select(
        x => new List<string> { x.Name, "", "", "Average Cost", "", "", "Average Cost With Labour" });

这将产生一个IEnumerable&lt;List&lt;string&gt;&gt; 来做你想做的事

【讨论】:

  • 抱歉,当我在我的代码中实现这一点时遇到了问题。您能否也添加我的代码来告诉我我做错了什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-31
  • 1970-01-01
  • 2019-08-16
  • 1970-01-01
相关资源
最近更新 更多