次のような行があるとします。
イングランドAチームプレーヤー:フリントフ
イングランドAチームプレーヤー:フリントフ
イングランドBチームプレーヤー:シュトラウス
イングランドAチームプレーヤー:シュトラウス
インドチームプレーヤーA:サチンテンドルカール
インドチームプレーヤーB:サチンテンドルカール
インドチームプレーヤーA:ジャバガルスリナート
今私が欲しいのは、ユニークな値のカウントを検索して返すことです。たとえば、イングランドのプレーヤーのユニークなカウントを検索したい場合は、上記の例のように2が表示されます。
私が試したコードですが、機能していません:
string searchKeyword = "England";
string fileName = @"C:\Users\karansha\Desktop\search tab.txt";
string[] textLines = File.ReadAllLines(fileName);
List<string> results = new List<string>();
foreach (string line in textLines)
{
if (line.Contains(searchKeyword))
{
results.Add(line);
}
}
List<string> users = new List<string>();
Regex regex = new Regex(@"player:\s*(?<playername>.*?)\s+appGUID");
MatchCollection matches = regex.Matches(searchKeyword);
foreach (Match match in matches)
{
var user = match.Groups["username"].Value;
if (!users.Contains(user)) users.Add(user);
}
int numberOfUsers = users.Count;
Console.WriteLine(numberOfUsers);
// keep screen from going away
// when run from VS.NET
Console.ReadLine();