如果我有2个收藏品可供使用,我想跟踪它们,最好的方法是什么?
BusinessObject1
可以有Int32
个ID,例如1,2,3,4,5
BusinessObject2
可以有String
个ID,例如"测试1","测试2","测试3"
我希望能够在使用它们时保留这些对象的列表,并循环遍历它们以检查它们是否存在于集合中。所以一个现实的场景可能是这样的:
项目1:1,"测试1" 项目2:2,"测试1" 项目3:2,"测试2" 项目4:3,"测试2"
我不能使用字典,因为密钥必须是唯一的。这是一种多对多的关系。
你们有什么想法?
答案 0 :(得分:3)
您可以拥有元组列表
List<Tuple<int, string>> myCollection = new List<Tuple<int, string>>()
{
{1, "Test 1"},
{1, "Test 1"},
{2, "Test 2"},
{3, "Test 2"}
};
修改:添加示例迭代
foreach(var tuple in myCollection)
{
Console.WriteLine("{0}: {1}", tuple.Item1, tuple.Item2);
}
修改:添加了Linq示例
这将为您提供所有具有伪密钥1
var ones = myCollection.Where(tuple => tuple.Item1 == 1).ToList();
答案 1 :(得分:0)
为什么不使用LINQ?
IEnumerable<BusinessObject1> businessObjects = ...;
if (businessObjects.Any(arg => arg.Id == 1))
{
...
}
答案 2 :(得分:0)
如果你想在同一个列表中存储两种类型,你可以做这样的事情,使用List你可以改变&#34; object&#34;成为您可能正在使用的常见基础对象。