2013-08-16 15 views
1

我從database獲取像200k記錄的數據,並將其存儲在linq結果中,其結果爲ColumnNameEMAIL。現在,我想顯示來自linqresult的所有電子郵件,並將它們添加到TextBox,並用,分開。Linq結果加入所有行數據到字符串

其實,我已經準備DataTablelinq結果,並結合所有的代碼行數據:

var dataLists = (from xx in VDC.SURVEY_EMAIL_LIST 
        where xx.EMAIL_GROUP_ID == ListGroupID 
        select xx).ToList(); 

DataTable DtDataLists = LINQToDataTable(dataLists); 

EmailIDS = string.Join(",", DtDataLists.AsEnumerable().Select(x => x["EMAILID"].ToString()).ToArray()); 

但是,對於準備DataTable,它走的是一條很長的時間。 因此,我想直接從linq的結果準備string 。 任何人都可以幫助我嗎?

+1

你可以用'的string.join( 「」 dataLists.Select(X => X .EmailId).ToArray())' – Nilesh

回答

5

此代碼應該爲你工作,但我不知道它會快得多:

string.Join(",", dataLists.Select(x => x.EMAILID)); 
+0

如何不允許空值如: 我得到空引用異常,而我的LINQ結果中有空值。所以,我想要這樣的事情: var text = string。 Join(「,」,table.AsEnumerable()。Select(T => ((T.ColumnName == null)?「」:T.ColumnName).ToString())); – RealSteel

+2

@RealSteel只需在表達式中添加過濾器語句('Where')。 (x => x.EMAIL!= null).Select(x => x.EMAILID));' –

+0

關於性能我做了一點測試,string.JOIN結合LINQ是高性能的:http://www.dailycode.info/Blog/post/2014/05/07/Using-LINQ-to-concatinate-an-object-property-from-a-list-of- objects.aspx我不明白你爲什麼要使用數據表? – Mark

相關問題