列出<>多个列表c#

Mr.*_*ama 4 .net c# list visual-studio winforms

我正在寻找一种解决方案来创建List<>具有不同数据类型的列表 List<List<int>,List<double>,List<string>> list;

或者List<>有多种数据类型的 List<int,double,string> list;

Dav*_*vid 6

严肃地说...... 为什么?

消耗这些结构的代码将变得令人困惑并且难以支持.它真的,真的会.

如果您的数据具有自定义结构,请创建一个自定义对象来表示该结构.像这样的东西:

class MyThing
{
    public int Widget { get; set; }
    public double Foo { get; set; }
    public string Something { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

为您的值/类型/等使用实际有意义的名称.当然,因为这是完成这一切的重点.

然后只列出一个:

var things = new List<MyThing>();
Run Code Online (Sandbox Code Playgroud)

随着您的结构不断变化和增长,您将该结构的逻辑构建到对象本身中,而不是构建使用它的所有消费代码中.然后使用它的代码更接近于它试图执行的操作的语义,而不是令人眼花缭乱的语法操作.


Usm*_*bal 6

也许你可以这样做

 public class Helper
    {
        public object value;
        private string Type;
    }
Run Code Online (Sandbox Code Playgroud)

然后创建列表

List<Helper> myList=new List<Helper>();
Run Code Online (Sandbox Code Playgroud)

像这样使用

myList.Add(new Helper {value = 45,Type = "int"});
myList.Add(new Helper {value = 45,Type = "int"});
myList.Add(new Helper {value = "hello",Type = "string"});
Run Code Online (Sandbox Code Playgroud)

和根据Type的隐蔽。


Swe*_*wen 5

您可以按列表制作列表

List<List<int>>
Run Code Online (Sandbox Code Playgroud)

要拥有包含多种数据类型的列表,您可以使用最多可以包含8个项目的元组.

List<Tuple<string, int>>
List<Tuple<string, string, int>>
Run Code Online (Sandbox Code Playgroud)

你甚至可以发疯并做以下事情

Tuple<List<int>, int, int> tuple = new Tuple<List<int>, int, int>(new List<int>(), 2, 3);
Run Code Online (Sandbox Code Playgroud)