字符串数组到字符串转换所需的Linq语法

本文关键字:字符串 Linq 语法 数组 转换 | 更新日期: 2023-09-27 18:02:40

我已经从特定文件夹中获得了数组中选定文件的列表。

String[] allfiles = System.IO.Directory.GetFiles(Target, "*.*", System.IO.SearchOption.AllDirectories);

我需要将所有这些文件转换为字符串变量,并在LINQ的帮助下每行附加"'n"字符。我可以在循环的帮助下像下面这样做,但这需要在LINQ语法中。

String strFileName = string.Empty;
for ( int i = 0; i < allfiles.Length ; i++)
  strFileName = strFileName + "'n" + allfiles[1] ;

字符串数组到字符串转换所需的Linq语法

首先,我将使用Directory.EnumerateFiles代替,因此您不需要等待直到读取所有文件。然后可以使用string.Join(Environment.NewLine, allFileNames):

IEnumerable<string> allFileNames = Directory.EnumerateFiles(Target, "*.*", System.IO.SearchOption.AllDirectories);
string strFileNames  = string.Join(Environment.NewLine, allFileNames);

很简单

String.Join("'n",allFiles)

您不需要Linq来做这些,您可以使用Jamiec的答案中所示的String.Join方法。

现在,如果你真的想用Linq来做,你可以使用Aggregate:

string strFileName = allfiles.Aggregate("", (acc, file) => acc + "'n" + file);

或者使用StringBuilder:

更好
string strFileName = allfiles.Aggregate(
                                  new StringBuilder(),
                                  (acc, file) => acc.AppendLine(file),
                                  acc => acc.ToString());

如果要求使用LINQ:

var result = allFiles.Aggregate(new StringBuilder(),
                                (sb, s) => sb.AppendLine(s),
                                sb => sb.ToString());

你不需要linq。只需使用简单的string.Join()方法。

string.Join("'n",allfiles);

下面应该可以工作

String.Join(delimiter,stringArray);

你不需要Linq来做这件事,你可以使用string.Join()方法来代替。

String strFileName = string.Join("'n", allfiles);