2016-09-26 54 views
2

我有一個字符串數組與電子郵件,逗號分隔。例如:C#QueryExpression內部枚舉器

string[] array = new [] { 
    "[email protected];[email protected]", 
    "[email protected];[email protected]" 
} 

我想一個查詢表達式這將讓我列舉通過量這三個電子郵件不會忽略([email protected]是一式兩份):「[email protected],test2的@試驗。玉米,[email protected]

我的基本嘗試以下

var enum = array.Select((item) => item.Split(';')); 

結果是(當然)的枚舉器與每個含有2項的數組2項。

我不知道如何命名,我想要什麼,所以我無法通過谷歌找到答案。如果你能給我一個暗示或者我會非常感激的。

回答

3

你最有可能尋找LINQ SelectMany方法:

var enum = array 
      .SelectMany(item => item.Split(';')) 
      .Distinct() 
      .ToArray(); 

這將返回唯一的郵件的字符串數組。

+0

此外,要跳過重複,使用'Distinc t()'方法。 – kiziu

+0

@kiziu公平點,謝謝 – Fabjan

+0

這正是我正在尋找的。謝謝! – Undercover1989

1

首先,要使用SelectMany返單,扁平列表:

array.SelectMany(item => item.Split(';')) 

然後你想使用Distinct過濾掉重複

.Distinct() 

然後你就可以通過它們全部枚舉:

var emails = array.SelectMany(item => item.Split(';')).Distinct(); 

foreach (var email in emails) { 
    // do stuff here 
}