2010-10-04 55 views
1
public static int SafeCount<T>(this IList list) 
    { 
     return list != null ? list.Count : 0; 
    } 

我想問的是我該怎麼稱呼這種方法? SafeCount會? NullSafeCount?做一個考慮空檢查的計數 - 我該怎麼稱呼它? SafeCount會?

你能想出一些更簡短但不含糊的東西嗎?

+0

我建議對超載的IEnumerable''以及(所以纔會對所有集合的工作),並改變這一個ICollection的''採取用'Count'財產更廣泛的選擇集合類型。 – Richard 2010-10-04 18:18:42

+0

BuggyCount,我會說。 CountIfNotNull描述了它的功能。 – 2010-10-04 18:19:43

+0

@Richard:取決於使用情況。因爲他可能不想使用計數擴展來枚舉集合。 – 2010-10-04 18:20:29

回答

0

這可能只是linq對我的影響,但我會被誘惑稱爲'CountOrDefault'。不是真的較短,但...

(邊注:爲什麼IList的,而不是IEnumerable的只是好奇)

+0

我必須數。 – halviingston 2010-10-04 18:25:27

+0

在這種情況下,您可以使用IEnumerable的Count()函數。我可以理解,不想實現IEnumerable,但是您必須這樣做才能創建使用上述函數所需的IList。 – diceguyd30 2010-10-04 18:35:02

+0

一個可能的更短的名字:'CountOr0' – diceguyd30 2010-10-04 18:37:30

2

爲框架中的其他方法對準我稱之爲GetCountOrDefault或可能CountOrDefault。類似的方法,我會尋找前瞻。

  • Enumerable.FirstOrDefault
  • Enumerable.SingleOrDefault
  • Enumerable.LastOrDefault
  • Enumerable.ElementAtOrDefault
  • Nullable.GetValueOrDefault

另一種選擇是通過使其返回到返回類型,而不是在方法名的模糊性編碼int?而不是int

public static int? GetCount(this IList list) { 
    return list != null ? (int?)list.Count : null; 
} 
+1

我看到你要去哪裏,這.. ..不知道我怎麼感覺它thoiugh。 – halviingston 2010-10-04 18:28:31

+0

@halviingston,我同意起初有點奇怪。但沒有一個令人信服的理由,我會贊成以一個新名字開頭。在這些例子中,'Nullable '對我來說是最引人注目的,因爲它描述了一個非常相似的場景。 – JaredPar 2010-10-04 18:34:07

+0

@halviingston又增加了一個建議。 – JaredPar 2010-10-04 19:40:00