[英]Lists<> with multiple lists c#
我正在尋找一個解決方案來創建List<>
列表,其中包含不同的數據類型,如List<List<int>,List<double>,List<string>> list;
或具有多種數據類型的List<>
,如List<int,double,string> list;
嚴肅地說...... 為什么?
消耗這些結構的代碼將變得令人困惑並且難以支持。 它真的,真的會。
如果您的數據具有自定義結構,請創建一個自定義對象來表示該結構。 像這樣的東西:
class MyThing
{
public int Widget { get; set; }
public double Foo { get; set; }
public string Something { get; set; }
}
為您的值/類型/等使用實際有意義的名稱。 當然,因為這是完成這一切的重點。
然后只列出一個:
var things = new List<MyThing>();
隨着您的結構不斷變化和增長,您將該結構的邏輯構建到對象本身中 ,而不是構建到使用它的所有消費代碼中。 然后使用它的代碼更接近於它試圖執行的操作的語義,而不是令人眼花繚亂的語法操作。
您可以按列表制作列表
List<List<int>>
要擁有包含多種數據類型的列表,您可以使用最多可以包含8個項目的元組 。
List<Tuple<string, int>>
List<Tuple<string, string, int>>
你甚至可以發瘋並做以下事情
Tuple<List<int>, int, int> tuple = new Tuple<List<int>, int, int>(new List<int>(), 2, 3);
也許你可以這樣做
public class Helper
{
public object value;
private string Type;
}
然后創建列表
List<Helper> myList=new List<Helper>();
像這樣用
myList.Add(new Helper {value = 45,Type = "int"});
myList.Add(new Helper {value = 45,Type = "int"});
myList.Add(new Helper {value = "hello",Type = "string"});
和根據類型的隱蔽。
如果我正確地理解你,我認為你需要一個小幫手類:
public class MyInfo {
public int MyInt32 { get; set; }
public double MyDouble { get; set; }
public string MyString { get; set; }
}
然后,列出以下內容: var myList = new List<MyInfo>()
。
你也可以使用List<Tuple<int, double, string>>
,但如果使用范圍比單個類寬,我建議你創建自己的類,因為Tuples
屬性對它們的含義不是很具描述性。 : Item1
, Item2
, Item3
......
您可以使用ArrayList - 舊的非通用列表。 這允許你把任何東西放進去,int,string,FooObject,bool,....
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.