![](/img/trans.png)
[英]Alternative to List<Tuple<Grid, TabItem, int, string, int>>… in C#
[英]C# alternative to tuple
我有一個我想要讀取的dbf文件(dBase),將每一行放入一個列表中(因為一行代表一個shapefile對象的數據),然后能夠修改列表(例如,轉換代表名稱的字段)到一個字符串)。 這意味着數據類型需要能夠同時保存Ints,string,bool等,並向其中添加項目。 在python中,我可以使用列表來完成此操作,但由於集合無法修改,我無法使用它們。
這聽起來像是替代元組的(精確)重復,但事實並非如此。 這些問題是基於您事先知道自己想要哪些物體的假設; 我不。
我在.NET 4.5上,順便說一句。
使用dynamic
- 它是一個完美的用例:
Visual C#2010引入了一種新的動態類型。 類型是靜態類型,但動態類型的對象繞過靜態類型檢查。 在大多數情況下,它的功能類似於它具有類型對象。 在編譯時,假定鍵入為動態的元素支持任何操作。 因此,您不必擔心對象是從COM API,動態語言(如IronPython),HTML文檔對象模型(DOM),反射還是程序中的其他位置獲取其值。 但是,如果代碼無效,則會在運行時捕獲錯誤。
你嘗試過使用dynamic
類型嗎?
如果您希望能夠在運行時輕松添加屬性並更改其類型,則可以將ExpandoObject
與dynamic
一起使用,例如:
dynamic expando = new ExpandoObject();
expando.SomeProperty = "1234";
Console.WriteLine(expando.SomeProperty);
Console.WriteLine(expando.SomeProperty.GetType().FullName); // string
expando.SomeProperty = int.Parse(expando.SomeProperty);
Console.WriteLine(expando.SomeProperty);
Console.WriteLine(expando.SomeProperty.GetType().FullName); // int
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.