为什么不为密钥创建类:
public class YourKey
{
public int Item1 { get; private set; }
public int Item2 { get; private set; }
public YourKey(int item1, int item2)
{
this.Item1 = item1;
this.Item2 = item2;
}
public override bool Equals(object obj)
{
YourKey temp = obj as YourKey;
if (temp !=null)
{
return temp.Item1 == this.Item1 && temp.Item2 == this.Item2;
}
return false;
}
public override int GetHashCode()
{
int hash = 37;
hash = hash * 31 + Item1;
hash = hash * 31 + Item2;
return hash;
}
}
然后您可以在 a 中使用它Dictionary<YourKey, int>
来存储所有值。
这样做的好处是只能存储 Item1 和 Item2 的每个组合的一个值。
如果要删除您的字典中具有项目 1 == 1 的所有条目:
var entriesToDelete = yourDictionary.Where(kvp => kvp.Key.Item1 == 1).ToList();
foreach (KeyValuePair<YourKey, int> item in entriesToDelete)
{
yourDictionary.Remove(item.Key);
}