2

実行時に文字列を追加するリストがあります。リスト内の文字列は次のようになります

List<string> myList=new List<string>();
  0    7- 9
  1    3 - 6
  2    1 -3
  3    10-12

ここで、リストに含まれる文字列には同じパターンがありません。3 - 6 のインデックスを見つけたいとします。

3\s*\-\s*6

次に、Array.Indexof メソッドで使用して、mylist からこの要素のインデックスを取得できるようにします。

4

4 に答える 4

2

試す

myList.FindIndex(s => new Regex(@"3\s*\-\s*6").Match(s).Success);

編集:作業サンプル:

        List<string> myList = new List<string>
            {
                "7- 9",
                "3 - 6",
                "1 -3",
                "10-12"
            };
        int index = myList.FindIndex(s => new Regex(@"3\s*\-\s*6").Match(s).Success);


        Console.WriteLine(index); // 1
于 2013-09-12T07:43:51.527 に答える
0

これを試して :

var match = Regex.Match(String.Join(String.Empty, myList.ToArray()), @"3\s*\-\s*6");

if (match.Success) {
    // match.Index to get the index
    // match.Value to get the value
}
于 2013-09-12T07:42:13.477 に答える
0

できるよ

str.Replace(" ", "");

そして、空白を取り除きます

そしてただできる

str.IndexOf("3-6");
于 2013-09-12T07:42:15.007 に答える
0

LINQ を使用して同じことができます。

var regex = new Regex(@"3\s*\-\s*6");
var index = myList.Select((x, i) => new { x, i })
                  .Where(x => regex.Match(x.x).Success)
                  .Select(x => x.i)
                  .First()
于 2013-09-12T09:14:34.293 に答える