C#列表元组替换/删除以前的数据

C#列表元组替换/删除以前的数据,c#,list,tuples,C#,List,Tuples,谢谢你所有的信息,真的帮助了我,我终于决定张贴在这里。我刚刚发现了元组,它允许我用其他元素创建列表列表。 以下是我的简化代码: public class Category { //Classe "Category" comprenant le nom de la category et sa proportion de CIR public string category_name {get; set;} public string proportion {get

谢谢你所有的信息,真的帮助了我,我终于决定张贴在这里。我刚刚发现了元组,它允许我用其他元素创建列表列表。 以下是我的简化代码:

public class Category { //Classe "Category" comprenant le nom de la category et sa proportion de CIR
        public string category_name {get; set;}
        public string proportion {get; set;}
    }
public static void Main(string[] args)
    {
    var Projects = new List<Tuple<string, List<Category>>>();
    while(...)
        { [...]
            var List_Categories = new List<Category>()
            while(...)
            { [...]
            List_Categories.Add(category_example);
            }
        Projects.Add(Tuple.Create(nom_projet, List_Categories);
        }
    }
public class Category{//Classe“Category”包括类别名称和类别比例
公共字符串类别\u名称{get;set;}
公共字符串比例{get;set;}
}
公共静态void Main(字符串[]args)
{
var Projects=新列表();
而(…)
{ [...]
变量列表\类别=新列表()
而(…)
{ [...]
列出类别。添加(类别示例);
}
添加(Tuple.Create(nom_projet,List_Categories);
}
}
我的“Category”类只有2个字符串,“project”是一个列表和一个字符串(project_name),因此我使用Tuple来实现这个目的。 第一个问题:我本来会为“project”创建一个类,但我找不到如何将元组作为类的参数?(他不将“var”类型识别为参数)
然后,第二个问题:我有一个问题:当程序进行时,在“项目”(即“项目”列表)中,“项目名称”写得很好,但“类别”数据每次都被列表中每个索引的新数据替换。我不知道这怎么可能


非常感谢,我希望你能理解我的问题,我很抱歉我的英语不是我的母语。如果不能理解,我会重新编写。试着用字典代替

public static void Main(string[] args)
{
    var Projects = new Dictionary<string, List<Category>>();
    while(...)
    { [...]
        var List_Categories = new List<Category>()
        while(...)
        { [...]
            List_Categories.Add(category_example);
        }
        Projects.Add(nom_projet, List_Categories);
    }
}
publicstaticvoidmain(字符串[]args)
{
var Projects=newdictionary();
而(…)
{ [...]
变量列表\类别=新列表()
而(…)
{ [...]
列出类别。添加(类别示例);
}
添加(项目名称、项目类别列表);
}
}

通过在每个循环上创建一个元组,您将覆盖以前的工作。使用字典,您可以简单地将元组添加到循环内部的集合中

public class Project
{
    public string project_name {get; set;}
    public List<Category> categories {get; set;}
}
公共类项目
{
公共字符串项目名称{get;set;}
公共列表类别{get;set;}
}
正如科拉克提到的,我认为一本字典可能会对你的另一个问题有所帮助


顺便说一句,不能将
var
用作属性的类型的原因是它不是一种类型——它只是一种在不显式指定该变量类型的情况下声明变量的简写方法(编译器会计算出来),但它是。您不能将它用于属性,因为编译器无法确定该属性的类型。a的类型是
元组
——例如,这里的元组是
元组
,如果需要,您当然可以拥有该类型的类属性

“我刚刚发现了元组,它允许我用其他元素创建列表。”男孩,当你发现
字典时,你会感到兴奋吗?^^^我已经尝试了Dictionnary,但它没有帮助。但是你的解决方案与类“Project”非常好!非常感谢你,因为我无法使用“var”,我不知道如何创建以列表作为参数的类。再次感谢:)