什麼是C#中的收集好來存儲數據如下:好的C#集合
我已經檢查在subjectId,varnumber,VARNAME,以及與每個複選框相關的標題帶來的箱子。
我需要一個集合,可以是任意大小,像ArrayList中也許有可能:
list[i][subjectid] = x;
list[i][varnumber] = x;
list[i][varname] = x;
list[i][title] = x;
什麼好的建議?
什麼是C#中的收集好來存儲數據如下:好的C#集合
我已經檢查在subjectId,varnumber,VARNAME,以及與每個複選框相關的標題帶來的箱子。
我需要一個集合,可以是任意大小,像ArrayList中也許有可能:
list[i][subjectid] = x;
list[i][varnumber] = x;
list[i][varname] = x;
list[i][title] = x;
什麼好的建議?
A List<Mumble>
其中Mumble是存儲屬性的小助手類。
List<Mumble> list = new List<Mumble>();
...
var foo = new Mumble(subjectid);
foo.varnumber = bar;
...
list.Add(foo);
,..
list[i].varname = "something else";
您可能想爲此使用two-dimensional array,併爲每個值分配陣列第二維中的位置。例如,list[i][0]
將是subjectid
,list[i][1]
將是varnumber
,依此類推。
public Class MyFields
{
public int SubjectID { get; set; }
public int VarNumber { get; set; }
public string VarName { get; set; }
public string Title { get; set; }
}
var myList = new List<MyFields>();
要訪問的成員:
var myVarName = myList[i].VarName;
泛型列表,List<YourClass>
將是巨大的 - 在YourClass有subjectid,varnumber等
的性質確定哪些集合,通常從你想用它做什麼開始?
如果你的唯一標準是它可以anysize,那麼我會考慮List<>
由於這是一個鍵,值對我會建議你使用一個通用的基於IDictionary收集。
// Create a new dictionary of strings, with string keys,
// and access it through the IDictionary generic interface.
IDictionary<string, string> openWith =
new Dictionary<string, string>();
// Add some elements to the dictionary. There are no
// duplicate keys, but some of the values are duplicates.
openWith.Add("txt", "notepad.exe");
openWith.Add("bmp", "paint.exe");
openWith.Add("dib", "paint.exe");
openWith.Add("rtf", "wordpad.exe");
字典將不會工作,因爲主觀,varnumbers都綁在一起作爲一個獨特的主鍵,所以你不能有相同的主題字典字典dictSubject(這就是問題我有) – chris 2011-05-17 23:19:58
我通常使用漢斯方法,因爲它允許你強烈地鍵入整個集合,所以這可能是最好的選擇。然後你可以使用枚舉來表示鍵。 – 2011-05-17 23:22:10
正如其他人所說,那樣子你會更好,創建一個類,使您的列表返回一個包含所有你需要的數據的對象來保存值。雖然二維數組可能很有用,但這看起來不像這些情況之一。
有關更好的解決方案,爲什麼在這種情況下二維數組/列表可能不是你所想讀一個好主意,瞭解更多信息:Create a list of objects instead of many lists of values
如果有外部機會的[i]
順序是不是在可預知的順序,或可能有差距,但你需要使用它作爲一個重點:
public class Thing
{
int SubjectID { get; set; }
int VarNumber { get; set; }
string VarName { get; set; }
string Title { get; set; }
}
Dictionary<int, Thing> things = new Dictionary<int, Thing>();
dict.Add(i, thing);
然後找到一個Thing
:
var myThing = things[i];
爲嘟class類的幫助,見下面 – chris 2011-05-17 23:27:23