【问题标题】:Add a complex object List with List of string to make a new list and bind to the Gridview添加带有字符串列表的复杂对象列表以创建新列表并绑定到 Gridview
【发布时间】:2014-02-04 19:01:00
【问题描述】:

我有两个列表

List<QueueListItems> such that

public class QueueListItems
{
    public string QueueDetail { get; set; }
    public string Value { get; set; } 
}

List<string> servernames

我想将这两个不同的列表添加到一个列表中,以便将生成的列表作为数据源提供给我的 Gridview。

【问题讨论】:

  • 它们是不相关的,List 1 从 XML 文件中获取结果集,而 List 2 从文本文件中获取结果集。我需要在 gridview 的不同列中显示这些详细信息。

标签: c# asp.net asp.net-mvc c#-4.0 gridview


【解决方案1】:

由于要加入的两个列表之间似乎没有任何关系,因此请使用索引器:

var result = queue.Select((x, i) => new
             {
                 x.QueueDetail,
                 x.Value,
                 ServerName = servernames[i]
             }).ToList();

如果servernames 中的元素少于queue,这将失败。

我不知道你想在这种情况下发生什么,但你可以测试一下:

...
ServerName = i < servernames.Count ? servernames[i] : ""
...

如果您只想将它​​们全部放在第一行,试试这个。可能更有效的方法,但这会工作......

var result = queue.Select((x, i) => new
        {
            x.QueueDetail,
            x.Value,
            ServerName = (i == 0 ? string.Join(",", servernames) : "")
        }).ToList();

【讨论】:

  • 索引超出范围。必须是非负数且小于集合的大小。这是我现在遇到的错误。
  • 是的,我的最终目标是将服务器名称(可能用逗号分隔)绑定到 gridview 的第三列。它没有链接到前两列,即 queuedetails 列表。
  • 此外,ServerName = i queuedetails 行数,我将错过 servernames。
  • 网格中要看到的数据应该是这样的。 QueueDetail Value Servernames Channel GLO.SVRCONN.RLF DM1XT, DM2XT, DM3XT, DM4XT QueueManager NTGL001 QueueServer U4VMMQSIT0001 QueueName LO.DAO_RCV
  • 我们通过解析文本文件并作为列表返回来获得服务器名称列表,而这个服务器名称列表比我想在gridview的第三列的第一行中显示。
【解决方案2】:

也许是这样的?

var resultList = (from item in listItems
                  from name in servernames
                  select new {
                         QueueDetail = item.QueueDetail, 
                         Value = item.Value,
                         Servername = name
                             }).ToList();

这里,listItems 是您的 List&lt;QueueListItems&gt;,我假设您的两个列表长度相同。

【讨论】:

  • 这给出了一个相乘的结果,列表 1 的每一行都与列表 2 相关联,结果列表 1 * 列表 2 产生结果列表。事实上,我的要求是列表 2 结果应该是 gridview 的第 3 列。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-15
  • 1970-01-01
相关资源
最近更新 更多