在方法调用中,对象正在传递。

从这个对象中,我可以得到两件事:ItemData属性和Row属性,例如:

oPTL.ItemData, oPTL.Row


我想要一个数据结构,每次调用此方法时,它都可以更新此数据结构,例如,一次oPTL.ItemData"Spread1"oPTL.Row2,因此我们应该能够保存该具有值Spread1 ...例如下一次调用,我们应该能够保存“ Spread3”具有值3。.下一次调用“ Spread1”具有ALSO值4,依此类推...

所以它就像一个2,但是在代码中以这种方式声明和使用它仍然有问题,您可以帮助我的任何代码示例吗?

最佳答案

您可以使用值是列表的字典:

IDictionary<string, List<int>> rows = new Dictionary<string, List<int>>();


要填充它,您可以使用以下扩展方法:

public static class DictionaryDefaultExtension
{
    public static TValue GetOrDefault<TKey, TValue>(
        this IDictionary<TKey, TValue> dictionary,
        TKey key,
        Func<TValue> defaultValue)
    {
        TValue result;
        if (dictionary.TryGetValue(key, out result))
        {
            return result;
        }
        else
        {
            TValue value = defaultValue();
            dictionary[key] = value;
            return value;
        }
    }
}


像这样使用:

d.GetOrDefault(oPTL.ItemData, () => new List<int>()).Add(oPTL.Row);

10-06 13:28