C#如何修改List中的結構體
C# List與 ArrayList用法與區別
問題:
請舉例講下List<>的用法?來個簡單的例子。。。。謝謝 比如我用List<int>test =newList<int>(); 那麼例項test中的所有方法的型別就是int嗎?
答案:
一般的如果要返回一個集合陣列會用到他。他增加了程式碼的可讀性,通過他,前臺編碼的人就可以不費很大力氣了解到這個欄位什麼意思。比如聲明瞭一個Users實體類 publicCalssUsers { publicstringName; publicintAge; }這個只是代表一個使用者的物件資訊,如果你獲取的是個使用者列表的化,就可以用
List<Users> usersList =newList<Users>;然後向列表裡新增每個使用者資訊 Users users =newUsers(); users.Name="ssss";users.Age="12"; userList.add(users); 這樣迴圈的向列表裡新增資訊,然後返回這個列表,在前臺頁面就可以用迴圈讀出這些資訊。
這個是2.0的新特徵泛型,用泛型可以解決裝箱拆箱問題,List<int>test =newList<int>()這樣定義,test這個集合就只能放進了int資料,因此取出的時候不用(int)test[i]顯式轉換了。
名稱空間: usingSystem.Collections; classProgram { //做個比較 staticvoidMain(string[] args) { //new物件 Cls a1 =newCls(); Cls a2 =newCls(); //存放物件 List<Cls> testfanxing =newList<Cls>(); testfanxing.Add(a1); ArrayList testarray =newArrayList(); testarray.Add(a2); //取物件 Cls b1 = testfanxing[0]; Cls b2 = testarray
另外一個list用法例項:
C#裡List的用法 主程式程式碼: staticvoidMain(string[] args) { ClassList listClass =newClassList(); Console.WriteLine("請輸入第個字串"); string a =Console.ReadLine(); Console.WriteLine("請輸入第二個字串"); string b =Console.ReadLine();
foreach(string n in listClass.strList(a, b)) { Console.WriteLine(n); }
類: classClassList { publicList<string> strList(string str1,string str2) { string stra = str1 + str2; string strb = str2 + str1; string strc = str1 + str1; List<string> listStr =newList<string>(); listStr.Add(stra); listStr.Add(strb); listStr.Add(strc); return listStr; } }
輸出:
ab
ba
aa
關於struct例項
List類是ArrayList類的泛型等效類,某些情況下,用它比用陣列和ArrayList都方便。
我們假設有一組資料,其中每一項資料都是一個結構。
publicstructItem { publicintId; publicstringDisplayText; } 注意結構是不能給例項欄位賦值的,即publicintId=1是錯誤的。
usingSystem.Collections.Generic;
List<Item> items =newList<Item>();
//新增 Item item1 =newItem(); item1.Id=0; item1.DisplayText="水星"; items.Add(item1);
//新增 Item item2 =newItem(); item2.Id=1; item2.DisplayText="地球"; items.Add(item2);
//修改 //這裡使用的是結構,故不能直接用 items[1].DisplayText = "金星";,如果 Item 是類,則可以直接用。為什麼呢?因為結構是按值傳遞的。 Item item = items[1]; item.DisplayText="金星"; items[1]= item;