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()
是制作列表克隆的一种紧凑方法 我编辑了一点这个问题-让我知道我在澄清问题时是否犯了任何错误。我编辑了一点这个问题-让我知道我在澄清问题时是否犯了任何错误。