我收到 EmailIds 输入,例如“companyby_1234@gmail.com”、“companyby_1256@gmail.com”,并希望找到包含文本“companyby”的电子邮件 ID 并过滤它们,但我不知道它在字符串中的位置.
我想做这个检查 c# 代码。
使用 lambda 表达式
var filteredList = IEnumerable<Emails>.Where(email => email.Contains(companyby))
包含对于大量数据来说太慢了,而且它也匹配域和中间事件。
所以使用 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;
因为里面有扩展方法。