C#中的多维arraylist或列表?
是否可以在C#中创建多维列表? 我可以像这样创建一个多维数组:
string[,] results = new string[20, 2];
但我希望能够使用列表或arraylist中的一些function,如能够添加和删除元素。
您可以创建列表列表
public class MultiDimList: List> { }
或密钥可访问列表的字典
public class MultiDimDictList: Dictionary> { } MultiDimDictList myDicList = new MultiDimDictList (); myDicList.Add("ages", new List()); myDicList.Add("Salaries", new List ()); myDicList.Add("AccountIds", new List ());
通用版本,用于在@ user420667的评论中实现建议
public class MultiDimList: List> { }
而对于字典,
public class MultiDimDictList: Dictionary> { } // to use it, in client code var myDicList = new MultiDimDictList (); myDicList.Add("ages", new List()); myDicList["ages"].Add(23); myDicList["ages"].Add(32); myDicList["ages"].Add(18); myDicList.Add("salaries", new List ()); myDicList["salaries"].Add(80000); myDicList["salaries"].Add(100000); myDicList.Add("accountIds", new List ()); myDicList["accountIds"].Add(321123); myDicList["accountIds"].Add(342653);
或者,甚至更好,……
public class MultiDimDictList: Dictionary> { public void Add(K key, T addObject) { if(!ContainsKey(key)) Add(key, new List()); if (!base[key].Contains(addObject)) base[key].Add(addObject); } } // and to use it, in client code var myDicList = new MultiDimDictList (); myDicList.Add("ages", 23); myDicList.Add("ages", 32); myDicList.Add("ages", 18); myDicList.Add("salaries", 80000); myDicList.Add("salaries", 110000); myDicList.Add("accountIds", 321123); myDicList.Add("accountIds", 342653);
编辑:包含嵌套实例的Add()方法:
public class NestedMultiDimDictList: MultiDimDictList>: { public void Add(K key, K2 key2, T addObject) { if(!ContainsKey(key)) Add(key, new MultiDimDictList()); if (!base[key].Contains(key2)) base[key].Add(key2, addObject); } }
你只需要列出一个列表:
List> results = new List>();
然后只需使用您想要的function
results.Add(new List()); //adds a new list to your list of lists results[0].Add("this is a string"); //adds a string to the first list results[0][0]; //gets the first string in your first list
不完全是。 但您可以创建列表列表:
var ll = new List>(); for(int i = 0; i < 10; ++i) { var l = new List(); ll.Add(l); }
根据您的具体要求,您最好使用锯齿状的arrays:
List[] results = new { new List (), new List () };
或者您可以使用列表列表或其他一些此类构造。
如果你想修改它,我会选择以下任何一种方法:
List results;
– 要么 –
List> results;
根据您的需要……
上述就是C#学习教程:C#中的多维arraylist或列表?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1007111.html