2013-07-06 64 views
0

我在我的代碼中有幾個地方我想要獲得與第1個元素,前2個元素,集合的前3個元素的枚舉的集合,等等。以下linq擴展方法的好名字是什麼?

public static IEnumerable<IEnumerable<TSource>> SomeFunc<TSource>(this IEnumerable<TSource> source) 
{ 
    if(source.Any()) 
    { 
     return Enumerable.Range(1, source.Count()).Select(c => source.Take(c)); 
    } 
    else 
    { 
     return Enumerable.Empty<IEnumerable<TSource>>();; 
    } 
} 

什麼是這個功能的好名字?

+2

我會稱之爲'前綴()'。 –

+1

@Anders寫一個答案。因爲這是*答案。 –

+1

不應該最後一行是'return Enumerable.Empty >()'? – Douglas

回答

1

不是一個有明確答案的問題,但正如我之前評論的Prefixes<T>()可能是一個合適的名稱。例如,字符串的前綴可以是單詞前綴。

var x = Prefixes("Dog", 2); 

會是單詞前綴{ "D", "Do" }

0

我總是使用最能描述該功能的名稱。它應該始終是自我記錄。所以在你的情況下,我會建議像

GetCollectionOfInitialCharacters 
+1

如果有人傳入一組按鈕對象,我會覺得有點奇怪,該方法的後綴是「字符」。 –

+0

我同意 - 但我提出了一個建議,而不是100%的答案。許多編碼標準建議使用'主動'命名的方法執行的東西。例如,不是「總計」,而是「計算有效收入」。 –