日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何定义一个 Listint,string 这样的 List ?

發布時間:2023/12/4 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何定义一个 Listint,string 这样的 List ? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

咨詢區

  • Benny Ae

我在想為什么 C# 中沒有內置帶兩列的 List 結構,如:

List<int,string>?mylist=?new?List<int,string>();

回答區

  • newfurniturey

雖然沒有內置,但還是有其他解決方案的,大體上有四種。

  • 使用 Tuple<int, string>

  • 如果你用的是 C#7 之前的版本,而且還要堅持用 List 和 key-value 結構的話,完全可以使用 Tuple<int,string> ,參考如下代碼:

    static?void?Main(string[]?args){List<Tuple<int,?string>>?mylist?=?new?List<Tuple<int,?string>>();//?add?an?itemmylist.Add(new?Tuple<int,?string>(someInt,?someString));}
  • ValueTuple

  • 如果你用的是 C#7 以后的版本,可以使用新的結構 ValueTuple,它的結構和你的所想象的基本能保持一致。

    static?void?Main(string[]?args){List<(int,?string)>?mylist?=?new?List<(int,?string)>();}

    值得一提的是,在 .NETFramework 4.7+ 和 .NET Core 中是內置的,它是引用類型 Tuple 的值類型版本,也比 Tuple 更加靈活,比如下面這樣。

    static?void?Main(string[]?args){var?mylist?=?new?List<(int?myInt,?string?myString)>();}
  • 使用 Dictionary<int,string>

  • 如果你關注的只是鍵值對,完全可以用 Dictionary 替代 List。

    static?void?Main(string[]?args){Dictionary<int,?string>?mydict?=?new?Dictionary<int,?string>();//?add?an?itemmydict.Add(someInt,?someString);}
  • 使用 struct

  • 可以將 key-value 封裝到 struct 結構體中,這樣更加可視化,參考如下代碼:

    class?Program{static?void?Main(string[]?args){var?list?=?new?List<Data>();}}public?struct?Data{public?Data(int?intValue,?string?strValue){IntegerData?=?intValue;StringData?=?strValue;}public?int?IntegerData?{?get;?private?set;?}public?string?StringData?{?get;?private?set;?}}

    點評區

    這可能源自作者的想象,數據結構中也并沒有,也不需要這樣的數據結構,變通方法也很好,newfurniturey 大佬就總結的比較全面。

    總結

    以上是生活随笔為你收集整理的如何定义一个 Listint,string 这样的 List ?的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。