3

私は2つの文字列配列を持っています。1つはベースで、もう1つは変化しています。

string[] baseArray = { "Gold", "Silver", "Bronze" };
string[] readArray = { "Bronze", "Silver", "Gold" };

// After comparing the readArray over the baseArray the result should be this
//string match = "Gold";

baseArrayの順番で1番目を取得したいです。

//Example2
string[] readArray = { "Bronze", "Silver" };
//string match should be "Silver"
4

2 に答える 2

7

LINQ を使用して 1 つの結果のみが必要な場合:

string firstMatch = baseArray.FirstOrDefault(readArray.Contains);

LINQ を使用せずに 1 つの結果のみが必要な場合:

string firstMatch = null;
foreach(string element in baseArray)
{
    if (Array.IndexOf(readArray, element) >= 0)
    {
        firstMatch = element;
        break;
    }
}

LINQ を使用して、一致するすべての要素が必要な場合:

string[] common = baseArray.Intersect(readArray).ToArray();

LINQ を使用せずに、一致するすべての要素が必要な場合:

HasSet<string> common = new HashSet<string>(readArray);
result.Intersect(baseArray);
于 2013-05-13T20:41:24.940 に答える
1
var match = baseArray.FirstOrDefault(x => readArray.Contains(x));
于 2013-05-13T20:41:57.587 に答える