字符串数组到字符串转换所需的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] ;
首先,我将使用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);