0

私はいくつかのC#コードを持っています:

var oldLines = System.IO.File.ReadAllLines(path);
var newLines = oldLines.Where(line => !line.Contains(wordToDelete));
System.IO.File.WriteAllLines(path, newLines);

コードは、新しい Windows アプリケーションで動作します。しかし、そのコードを既存のアプリに貼り付けると、次のエラーが発生します。

Error   2   Argument 2: cannot convert from
'System.Collections.Generic.IEnumerable<string>' to 'string[]'
Error   1   The best overloaded method match for
'System.IO.File.WriteAllLines(string, string[])' has some invalid
arguments

新しいプロジェクトではこのエラーがスローされるのに、古いプロジェクトではスローされないのはなぜですか?

4

2 に答える 2

2

oldLines.Where(line => !line.Contains(wordToDelete)); IEnumerable< string> を返します

System.IO.File.WriteAllLines(path, newLines.ToArray());

それを修正します、

これは、別のフレームワーク バージョン ターゲットが原因である可能性があります。

于 2013-08-10T23:58:19.697 に答える
2

newLinesは ではありIEnumerable<string>ませんが、.NET バージョン (3.5 と仮定します) には、.NET 4 で導入されたを受け入れるオーバーロードがありstring[]ません。IEnumerable<String>

したがって、少なくとも .NET 4 を作成するか、少なくとも使用するstring[]必要があります。File.WriteAllLines

System.IO.File.WriteAllLines(path, newLines.ToArray());
于 2013-08-10T23:59:08.217 に答える