-8

我收到 EmailIds 输入,例如“companyby_1234@gmail.com”、“companyby_1256@gmail.com”,并希望找到包含文本“companyby”的电子邮件 ID 并过滤它们,但我不知道它在字符串中的位置.

我想做这个检查 c# 代码。

4

2 回答 2

1

使用 lambda 表达式

var filteredList = IEnumerable<Emails>.Where(email => email.Contains(companyby))
于 2012-07-18T09:07:33.083 回答
0

包含对于大量数据来说太慢了,而且它也匹配域和中间事件。

所以使用 StartsWith

System.Data.DataTable dt = //Whatever
foreach(System.Data.DataRow dr in dt.Rows)
{
    //string email = dr("email");
    string email = "companyby_1234@gmail.com";

    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 Framework > 3.0 并且需要添加

using System.Data;
using System.Linq;

因为里面有扩展方法。

于 2012-07-18T09:13:34.377 回答