2013-03-23 70 views
-3

我在面試中面對這個問題如下?IEnumerable <string>函數c#.net

讓我們考慮一個名爲我需要轉換中的IEnumerable字符串函數

我需要一個輸出是爲

new[] {"test1", "test2","test3" } 

我所做的是字符串

string gowtham="test1,test2,test3" ; 

我創建了一個字符串()函數,用逗號分隔值如下

string[] mysamples= gowtham.Split(','); 

我不知道如何後

繼續等待着你的迴應?

+2

我看不到您創建的功能。我不太瞭解你的問題。 – wRAR 2013-03-23 10:57:53

+2

您已將*字符串*轉換爲*數組的字符串*。這些是數據,而不是功能。結果,你的'mysamples'對象的類型是'string []',它實現了所需的接口'IEnumerable '。 – Impworks 2013-03-23 10:59:47

+3

我不認爲有什麼要補充的:數組實現'IEnumerable ',所以'mysamples' * *已經是'IEnumerable '。只需將它封裝在一個返回值爲'IEnumerable '的方法中,就完成了。 – LukeH 2013-03-23 11:00:04

回答

-1

如果我明白你的問題,你可以使用這樣的方法;

public static IEnumerable<string> YourMethod() 
{ 
    string gowtham = "test1,test2,test3"; 
    string[] mysamples = gowtham.Split(','); 
    List<string> senum = new List<string>(); 

    foreach (string s in mysamples) 
    { 
     senum.Add(s); 
    } 

    return senum as IEnumerable<string>; 
} 

由於string[]實現IEnumerable<T>接口,看來你只需要強制轉換爲IEnumerable<T>

編輯:由於馬格努斯LukeH警告我,有一個簡單的方法還你想做。

public static IEnumerable<string> YourMethod() 
{ 
    string gowtham = "test1,test2,test3"; 
    return gowtham .Split(','); 
} 
+1

對於'test1,test2,test3'來說這似乎是不必要的.Split(',')。AsEnumerable()'會做。 – Magnus 2013-03-23 11:11:54

+2

@Magnus:你甚至不需要'AsEnumerable'調用:如果方法輸入爲'IEnumerable ',那麼就簡單地'return'test1,test2,test3「.Split(',');'會做的。 – LukeH 2013-03-23 11:18:37

+0

@Magnus你是完全正確的。我只是寫了這個,因爲它在我看來更簡單,易讀和易於理解。 – 2013-03-23 11:18:50

3

每個數組已經是一個IEnumerable的,你的情況,如果你想顯式的字符串的一個IEnumerable的,你可以使用

IEnumerable<string> mysamplesEnumerable = mysamples as IEnumerable<string> 

,如果你的面試官想要一個函數,這樣做你可以做

IEnumerable<string> SplitEnumByComa(string input) 
    { 
      return input.Split(','); 
    } 
+0

如果缺少'using system.LINQ',OP可能會因缺少IntelliSense而感到困惑。我記得當我第一次學習C#時讓我困惑。 – 2013-03-23 11:12:34

相關問題