C#,无法从';System.Collections.Generic.IEnumerable';到';

本文关键字:Collections Generic IEnumerable System | 更新日期: 2023-09-27 18:27:22

我有一些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

为什么这个错误会出现在一个新项目中,而不是我的旧项目中?

C#,无法从';System.Collections.Generic.IEnumerable';到';

newLinesIEnumerable<string>而不是string[],但您的.NET版本(我假设为3.5)没有接受IEnumerable<String>的重载,这是在.NET 4中引入的。

因此,您只需要为File.WriteAllLines创建一个string[],或者至少使用.NET4:

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

oldLines.Where(line=>!line.Contains(wordToDelete));返回IEnumerable<string>

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

会解决的,

这可能是由另一个框架版本目标引起的。

相关文章: