2011-07-04 58 views
79

我有這樣的對象:初始化的IEnumerable <string>在C#

IEnumerable<string> m_oEnum = null; 

,我想將其初始化。與

IEnumerable<string> m_oEnum = new IEnumerable<string>() { "1", "2", "3"}; 

嘗試,但它說「IEnumerable的犯規包含附加字符串的方法。任何想法?謝謝

回答

130

好,增加了答案說明你可能是尋找

IEnumerable<string> m_oEnum = Enumerable.Empty<string>(); 

IEnumerable<string> m_oEnum = new string[]{}; 
+1

'Enumerable.Empty ()'是爸爸。正是我需要的。 –

71

IEnumerable<T>是一個接口,你需要開始與一個具體類型(實現IEnumerable<T>)。例:

IEnumerable<string> m_oEnum = new List<string>() { "1", "2", "3"}; 
4

無法實例的界面 - 你必須提供一個具體實現的IEnumerable的

21

爲。實現IEnumerable

IEnumerable<string> m_oEnum = new string[] {"1","2","3"} 
+1

DownVoter,爲什麼呢? –

15

IEnumerable只是一個接口,所以不能直接實例化。

你需要創建一個具體類(如List

IEnumerable<string> m_oEnum = new List<string>() { "1", "2", "3" }; 

然後你可以通過這個來什麼期待的IEnumerable

9
public static IEnumerable<string> GetData() 
{ 
    yield return "1"; 
    yield return "2"; 
    yield return "3"; 
} 

IEnumerable<string> m_oEnum = GetData(); 
+6

雖然有點矯枉過正,使用收益+1的 –

+0

@AdrianCarneiro +1爲押韻 – 5argon