0

次のようなデータを含む「HighScores.txt」ファイルがあります

0
12
76
90
54

これをソートしたいので、このテキストファイルを整数の配列に追加したいと思います。各項目をループして文字列からintに変換するのに問題があります。

string path = "score.txt";
int[] HighScores;

if (!File.Exists(path))
    {
        TextWriter tw = new StreamWriter(path);
        tw.Close();
    }
    else if (File.Exists(path))
    {
        //READ FROM TEXT FILE


    }
4

2 に答える 2

6

LINQ を使用できます。

int[] highScores = File
    .ReadAllText("score.txt")
    .Split(' ')
    .Select(int.Parse)
    .ToArray();
于 2013-06-14T09:23:02.503 に答える
2

File.ReadLines+ Linqを使用できます:

int[] orderedNumbers = File.ReadLines(path)
    .Select(line => line.Trim().TryGetInt())
    .Where(nullableInteger => nullableInteger.HasValue)
    .Select(nullableInteger => nullableInteger.Value)
    .OrderByDescending(integer => integer)
    .ToArray();

これは、文字列を次のように解析できるかどうかを検出するために使用している拡張メソッドですint

public static int? TryGetInt(this string item)
{
    int i;
    bool success = int.TryParse(item, out i);
    return success ? (int?)i : (int?)null;
}
于 2013-06-14T09:24:25.103 に答える