具有重复索引键的二维数组

时间:2012-10-15 09:02:18

标签: c# asp.net

我想将这行代码从php翻译成asp.net

$subid[$value['parentid']][] = $value['id'];

我不熟悉asp.net数据结构,我试过arraylist但不能在[1]插入,字典不允许重复键,任何人都有想法?

感谢

2 个答案:

答案 0 :(得分:0)

我不熟悉PHP(不再),SO不是翻译服务,但你可以使用

而是(假设您的ID是整数)。


var list = new List<Tuple<int, int>>();
list.Add(Tuple.Create(1, 1));
list.Add(Tuple.Create(1, 2));
list.Add(Tuple.Create(2, 3));
list.Add(Tuple.Create(2, 4));
list.Add(Tuple.Create(3, 5));

使用Enumerable.ToLookup,您可以创建Lookup

var lookup = list.ToLookup(t => t.Item1, t => t.Item2);

查找parent-id = 1的所有产品:

var parentID1 = lookup[1];
foreach (var value in parentID1)
    Console.Write(value);

答案 1 :(得分:0)

您可以使用带有一点调整的词典来实现您想要的效果。

你创建了一个像这样的dicionary:

Dictionary<string, List<string>> myDictionary = new Dictionary<string, List<string>>();

您可以向其添加项目,如:

if(myDictionary.ContainsKey("myKey")) myDictionary["myKey"].Add("myItem");
else
{
myDictionary.Add("myKey", new List<string>(){"myItem"});
}

如果您要求某个密钥,它将返回对包含所有相关项目的列表的引用。