2012-07-18 78 views

回答

0

包含对大量数据的速度太慢,再加上它的域和在该中出现次数以及相匹配。

所以使用StartsWith

System.Data.DataTable dt = //Whatever 
foreach(System.Data.DataRow dr in dt.Rows) 
{ 
    //string email = dr("email"); 
    string email = "[email protected]"; 

    if (email != null && email.StartsWith("companyby", StringComparison.OrdinalIgnoreCase)) { 
     // do whatever here 
    } 
} 

使用LINQ:

var filteredList = IEnumerable<Emails>.Where(email => email != null ? email.StartsWith("companyby", StringComparison.OrdinalIgnoreCase) : false) 

对LINQ,你需要有.NET框架> 3.0,你需要添加

using System.Data; 
using System.Linq; 

因为在有扩展方法。

+2

公平的说,OP说“我不知道它在哪里”。 – 2012-07-18 09:14:12

+0

你是对的,希望我只能写点:) – Freeman 2012-07-18 09:15:21

+0

@J。斯蒂恩:你说得对,我重读了那个。请注意,我错过了公司后的@我的情况... – 2012-07-18 09:35:19

1

使用lambda表达式

var filteredList = IEnumerable<Emails>.Where(email => email.Contains(companyby)) 
+0

严格地说,您在Linq方法链中使用'.Contains'方法,虽然是一个lambda表达式。 =) – 2012-07-18 09:10:26

+0

从来没有说我不是:) – Freeman 2012-07-18 09:11:09

+1

通过查看这个问题,我想给出详细的答案可能会让他进一步陷入黑暗。 – Freeman 2012-07-18 09:12:35

相关问题