Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#变量连接_C#_Variables_Reference - Fatal编程技术网

C#变量连接

C#变量连接,c#,variables,reference,C#,Variables,Reference,做这样的事 public Multime<T> Difference(Multime<T> list) { Multime<T> diff = new Multime<T>(); for (int i = 0; i < list.Multisets.Count() - 1; i++) { foreach (T el in list.multiSets[i].Multimea) {

做这样的事

public Multime<T> Difference(Multime<T> list)
{
    Multime<T> diff = new Multime<T>();
    for (int i = 0; i < list.Multisets.Count() - 1; i++)
    {
        foreach (T el in list.multiSets[i].Multimea)
        {
            if (!(list.multiSets[i + 1].Multimea.Exists(element => EqualityComparer<T>.Default.Equals(element, el))))
                diff.Multimea.Add(el);

        }
        list.multiSets[i + 1] = diff;
        if (i < list.multiSets.Count() - 1)
            diff.Multimea.RemoveAll(item => EqualityComparer<T>.Default.Equals(item, item));
    }
...
这是索引器(如果有帮助:)

我不希望
list.multiset[I+1]
也被清除

您必须填写一份副本:

//list.multiSets[i + 1] = diff;
  list.multiSets[i + 1] = diff.ToList();
您的
diff
列表。多集[x]
值是引用类型。这意味着您的原始分配仅复制对列表的引用,而不是列表本身
ToList()
是制作列表克隆的一种紧凑方法

我不希望
list.multiset[I+1]
也被清除

您必须填写一份副本:

//list.multiSets[i + 1] = diff;
  list.multiSets[i + 1] = diff.ToList();

您的
diff
列表。多集[x]
值是引用类型。这意味着您的原始分配仅复制对列表的引用,而不是列表本身
ToList()
是制作列表克隆的一种紧凑方法

我编辑了一点这个问题-让我知道我在澄清问题时是否犯了任何错误。我编辑了一点这个问题-让我知道我在澄清问题时是否犯了任何错误。