在c#中创建特定于列表项的数据
本文关键字:列表 数据 于列表 创建 | 更新日期: 2023-09-27 18:16:57
我正在开发一个小应用程序,它使用一个项目列表,每个项目都有一组与之相关的数据。我是一个初学者,所以我不确定如何有效地做到这一点。
例如,我的列表包含以下内容:
Item 1
Item 2
Item 3
Item 4
每个项目将有6个左右相关的数据块,即
Item 1
Material 1
Material 2
Material 3
等。目前,我的GUI包含项目列表和二级列表,当从主列表中选择一个项目时,二级列表显示项目所需的材料。起初,我认为我可以通过使用if语句来根据所选的项目进行填充来实现这一点,但是项目列表包含相当多的项目,这似乎非常低效。有更好的方法来实现这一点吗?
这取决于你需要的数据结构;要么你需要一个类,这样每个项目都可以有一组不同类型的属性(string, int,甚至list…)或者您可以简单地将一个项视为文本属性的列表,而您的项列表将是列表的列表。
与此类似。注意哈希集。
public class ShopMaterial
{
public int Id {get;set;}
public string Name {get;set;}
}
public class ShopItem
{
public string ShopItemName { get; set; }
public HashSet<ShopMaterial> ShopMaterialList { get; set; }
}
然后,在Linq的帮助下,您可以通过执行以下操作获得材料。
ShopItem si = new ShopItem();
si.ShopMaterialList.Add(new ShopMaterial() { Id = 1, Name = "Item 1" });
si.ShopMaterialList.Add(new ShopMaterial() { Id = 1, Name = "Item 2" });
si.ShopMaterialList.Add(new ShopMaterial() { Id = 1, Name = "Item 3" });
si.ShopMaterialList.Where(item => item.Name == "Item 1").First();