5

File.WriteAllLines()を使用する理由の答えを、明白な場所で検索することができませんでした。StringCollectionを出力するときに機能しません:

static System.Collections.Specialized.StringCollection infectedLog = new System.Collections.Specialized.StringCollection();

感染ログに入力されたコードをここで省略します......。

File.WriteAllLines(@"C:\CustomSearchInfectedFiles.txt", infectedLog);

誰かが私が間違っていることを教えてくれるか、それとも喜ばれる説明の方向に私を向けることができますか?

4

4 に答える 4

8

は(または)をFile.WriteAllLines期待しますが、実装するだけです (ジェネリック型がないことに注意してください)。次のことを試してください。IEnumerable<string>string[]StringCollectionIEnumerable

using System.Linq;
...
File.WriteAllLines(@"C:\CustomSearchInfectedFiles.txt", infectedLog.Cast<string>());
于 2012-02-17T14:03:59.817 に答える
1

問題は、StringCollection が非常にコールドなコレクションであることです。IEnumerable<T> を実装しておらず、配列でもないため、WriteAllLines のオーバーロードはありません。

あなたはこれを行うことができます:

File.WriteAllLines(theFileName, infectedLog.Cast<string>());

または、List<string> などのより最新のコレクション型に切り替えることもできます。

于 2012-02-17T14:08:52.483 に答える
1

これを試して

File.WriteAllLines(@"C:\CustomSearchInfectedFiles.txt", infectedLog.Cast<string>());
于 2012-02-17T14:04:08.520 に答える
0
        using (StreamWriter w = File.AppendText(@"testfile.txt"))
        {
            foreach (var line in sc)
            {
                w.WriteLine(line);
            }
            w.Close();
        }
于 2012-02-17T14:11:58.333 に答える