1 回答

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超7個(gè)贊
創(chuàng)建“常量”Set 的最佳方法可能是使用以下方法將您的接口公開HashSet
為它的IEnumerable
接口:
public static readonly IEnumerable<string> fruits = new HashSet<string> { "Apples", "Oranges" };
public
: 每個(gè)人都可以訪問它。static
:無論創(chuàng)建了多少個(gè)父類實(shí)例,內(nèi)存中只會有一個(gè)副本。readonly
: 您不能將其重新分配給新值。IEnumerable<>
:您只能遍歷其內(nèi)容,而不能添加/刪除/修改。
要進(jìn)行搜索,您可以使用 LINQ 來調(diào)用Contains()
您的IEnumerable
,它足夠聰明,知道它由 a 支持HashSet
并委托適當(dāng)?shù)恼{(diào)用以利用您的集合的散列特性。(嗯,好吧,它通過 ICollection 調(diào)用它,但最終還是以 HashSet 的重寫方法結(jié)束)
Debug.WriteLine(fruits.Contains("Apples")); // True
Debug.WriteLine(fruits.Contains("Berries")); // False
fruits = new HashSet<string>(); // FAIL! readonly fields can't be re-assigned
fruits.Add("Grapes"); // FAIL! IEnumerables don't have Add()
- 1 回答
- 0 關(guān)注
- 103 瀏覽
添加回答
舉報(bào)