【问题标题】:How to change from foreach to display all data at once?如何从 foreach 更改为一次显示所有数据?
【发布时间】:2019-04-08 01:59:49
【问题描述】:

目前,我使用的是foreach

现在,我不想要循环。我希望一次显示所有数据。它就像一个列表。例如,我有 3 行数据,我希望它一次显示所有数据而不循环。我该怎么做?

【问题讨论】:

  • have 3 rows of data and I want it to show all the data at once without looping. 没有任何意义,因为没有上下文,不清楚,而且完全不清楚你在问什么。如果可能,尝试添加更多相关信息(问题)
  • @raynaqarla:如果使用 foreach 循环填充列表,为什么不能“立即”显示数据?
  • @mm8 例如在 itemIds 中有 3 个 id 所以通过使用我上面做的代码,它将显示 3 行数据。我想要的是所有 3 个id 及其数据显示在 1 行(列表框)而不是 3
  • @raynaqarla:请说明如何你想在屏幕上显示它们。

标签: c# wpf


【解决方案1】:

您可以先将其放入一个临时列表,然后使用.AddRange 将其一次性添加到您的主列表中。

List<int> itemIds = itemRelationBO.GetItemRelationItem(item.ItemId);

List<ItemRelationDisplay> temp = new List<ItemRelationDisplay>();

foreach (var id in itemIds)
{
    ItemRelation itemRelation = new ItemRelation();
    ItemRelationDisplay itemRelationDisplay = new ItemRelationDisplay();
    itemRelationDisplay.ItemIdSub = id;
    itemRelationDisplay.ItemNameSub = itemRelation.ItemNameSub;
    itemRelationDisplay.ItemQuantitySub = 1;
    temp.Add(itemRelationDisplay);
}

itemRelationList.AddRange(temp)

【讨论】:

  • 我已经尝试过您的代码,但出现此错误cannot convert from 'tfWindowsWPF.EntityModel.ItemRelationDisplay' to 'tfWindowsWPF.EntityModel.ItemRelation'
  • 抱歉,temp 应该是 List&lt;ItemRelationDisplay&gt;。我已经更新了我的答案。
  • 好的,现在没有错误,但数据仍然显示在 3 个不同的行中
【解决方案2】:
if (item.IsMainItem == true)
{
     ItemDisplay itemDisplay = new ItemDisplay();
     itemDisplay.ItemCode = item.ItemCode;
     itemDisplay.ItemName = item.ItemName;
     itemDisplay.ItemPrice = simpleItem.ItemPrice;
     itemDisplay.Quantity = 1;
     itemDisplayList.Add(itemDisplay);
     ItemRelationBO itemRelationBO = new ItemRelationBO();
     List<int> itemIds = itemRelationBO.GetItemRelationItem(item.ItemId);
     itemRelationList.AddRange(itemIds.Select(id =>
     {
           ItemRelation itemRelation = new ItemRelation();
           return new ItemRelationDisplay
           {
                 ItemIdSub = id,
                 ItemNameSub = itemRelation.ItemNameSub,
                 ItemQuantitySub = 1
           };
      }));
}

【讨论】:

  • 我已经尝试过您的解决方案,但是当我运行代码时,我的数据网格是空的。你知道有什么问题吗?
  • 你之前有没有清单?
  • 这可能是因为您的列表中有一些 valies,而我将其项目设置为不添加到它们中,现在检查答案。
  • 是的。我已经用完整的代码更新了我的问题。我有 2 个要显示的列表
  • 先生,我在result.Add(itemDisplay); 收到了这个错误cannot convert from 'tfWindowsWPF.EntityModel.ItemDisplay' to 'tfWindowsWPF.EntityModel.ItemRelationDisplay,因为itemDisplayItemRelationDisplay 是两个不同的东西
猜你喜欢
  • 2011-07-07
  • 1970-01-01
  • 1970-01-01
  • 2019-04-13
  • 1970-01-01
  • 1970-01-01
  • 2017-05-18
  • 2012-11-17
  • 2023-03-15
相关资源
最近更新 更多