0

平均長さが約1000文字の50000以上の文字列のリストがあります。次のような簡単なクエリを実行できます。

data.Where(c => c.Contains(query));

しかし、私の推測では、これはパフォーマンスに関しては最善の方法ではありません。検索のパフォーマンスを向上させようとするときの提案は何ですか?

私が試したこと:

/*** Worst ***/
var result = new List<string>();
foreach (var row in data)
{
    if (row.Contains(query))
        result.Add()
}

/*** Medium ***/
data.Where(c => c.IndexOf(query) != -1);

/*** Best but not that great ***/
data.Where(c => c.Contains(query));
4

2 に答える 2

2

私の頭の上から:PLINQ検索の応答時間を改善するために使用できます(マシンがマルチコアの場合)

var result = data.AsParallel()
    .Where(c => c.Contains(query));

それ以外は、@Tim Schmelterが指摘したように、データベース テーブルを使用する必要があります。

于 2013-09-23T10:54:06.790 に答える