-8

「companyby_1234@gmail.com」、「companyby_1256@gmail.com」などの EmailIds 入力を取得し、「companyby」というテキストを含む電子メール ID を見つけてフィルタリングしたいのですが、文字列のどこにあるのかわかりません.

このチェックC#コードを実行したいです。

4

2 に答える 2

1

ラムダ式を使用する

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

多数のデータに対して 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;

拡張メソッドがあるためです。

于 2012-07-18T09:13:34.377 に答える