2013-08-16 16 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

相关问题