「companyby_1234@gmail.com」、「companyby_1256@gmail.com」などの EmailIds 入力を取得し、「companyby」というテキストを含む電子メール ID を見つけてフィルタリングしたいのですが、文字列のどこにあるのかわかりません.
このチェックC#コードを実行したいです。
ラムダ式を使用する
var filteredList = IEnumerable<Emails>.Where(email => email.Contains(companyby))
多数のデータに対して contains は遅すぎます。さらに、ドメインと中間のオカレンスにも一致します。
したがって、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;
拡張メソッドがあるためです。