0

だから私はテキスト内の単語を検索するためのそのような構造を持っています

 FileStream fs = new FileStream(fileName, FileMode.Open);
 StreamReader sr = new StreamReader(fs);
 fullText = sr.ReadToEnd();
 string[] arr = fullTetx.Split(' ');
 for (int i = 0; i < arr.Length; i++)//
 {
       if (arr[i].Trim() == "LOAD")
           Console.WriteLine(arr[i].Trim());
 }
 sr.Close();
 fs.Close();

Linq では、同様の単語はすべて大文字と小文字を区別しないようにする必要があります。

例えば:

LOAD(PLOT) = SET 4 = THRU 16,34 THRU 37, 48 THRU 53,61 FORCE(PLOT,CORNER)ds STRESS(PLOT,CORNER) ママ パパ SPC = 1 LOAD = 1 ロード、ロード。

そして、私は取得する必要があります:

ロード ロード ロード ロード

4

4 に答える 4

4

LOAD がどこから取得されたのか理解できません。ハードコードされていますか?はいの場合、次のようなもの:

foreach(var word in arr.Where(w => w.ToUpper() == "LOAD"))
    Console.WriteLine(word);
于 2013-03-06T10:27:09.143 に答える
2

これを試してみてください

    var result = arr.Where(x => string.Equals(x, "LOAD",StringComparison.OrdinalIgnoreCase)).ToList();
于 2013-03-06T10:28:26.770 に答える
2
var matches = Regex.Matches(fullTetx, @"load", RegexOptions.IgnoreCase);
于 2013-03-06T10:29:52.493 に答える
0

またはどうですか:

// If you want the lines that contain "LOAD"
var loads = File.ReadLines(fileName).
            SelectMany (l => l.Split(' ')).
            Where (s => s.ToUpperInvariant().Contains("LOAD"));

foreach(var s in loads)
{
    Console.WriteLine(s);
}

// If you just want instances of "LOAD"
var loads = File.ReadLines(fileName).
            SelectMany (l => l.Split(' ')).
            Where (s => s.ToUpperInvariant() == "LOAD");

foreach(var s in loads)
{
    Console.WriteLine(s);
}
于 2013-03-06T10:49:14.820 に答える