我想在c#中使用Python的一些特徵,如元組和集合。我應該執行它們嗎?或者已經實施?任何人都可以知道.net語言的動態數據結構庫嗎?如何在C#中模擬元組和集合?
16
A
回答
14
3
對於集合,HashSets(一個.NET 3.5特性)很好地實現了這個技巧。
的部分解答,爲元組:
- .NET 4.0提供了用於tuples [一些]支持。
- 早期版本的C#可以使用匿名類型(我認爲在.Net 2.0中引入了3.0,肯定與所有LINQ的東西)。
這兩種方法都不如Python那樣方便;主要障礙來自於C#是靜態類型的事實。然而,C#4.0 Tuple類具有類似工廠的靜態方法,這些方法可以更容易地創建元組(最多8元組,即具有8個元素的元組)。例如,人們可以有
var customer1 = Tuple.Create("John", "Smith", 14, 5.33, "202-123-444");
使用匿名類型可以完成如下。這種方法的主要缺點是,人們需要明確命名「元組」的元素(雖然這種命名可以隱式「投影」如果用於初始化的值被從另一個對象「投影」。
customer1 = new Customer { Name = "John", Surname = "Smith", NumberOfVisits = 14, CurrentBalance = 5.33, PhoneNr = "202-123-444" };
1
如果您之前使用.NET Framework進行工作,Wintellect Power Collections可能會引起某些興趣 - 它具有2元和3元組的Pair
和Triple
以及兩個集合,如Set
,Bag
和Ordered
。
當然,沒有什麼能阻止你實施4.0的Tuple
你自己。
(順便說一下,沒有什麼特別的「動態」關於像這樣在自己和數據結構)
「......這就像一個元組」,雖然是隻有2元組。 – Thomas 2010-04-11 14:47:16
@Thomas是的,我打算指定一個2元組。編輯並修復。謝謝。 – 2010-04-12 06:18:53
keyvaluepair永遠不會是一個元組。請編輯它.. – nawfal 2012-03-29 13:23:42