在c#中修改字符串数组的内容
本文关键字:数组 字符串 修改 | 更新日期: 2023-09-27 17:49:15
String []lines = System.IO.File.ReadAllLines(path);
foreach (String line in lines)
{
line.Trim();
}
显然这不起作用,因为String.Trim
返回裁剪后的版本作为一个新的字符串。你不能做line = line.Trim()
。那么唯一的方法是老式的for
循环吗?
for(int i=0;i<lines.Length;++i)
{
lines[i] = lines[i].Trim();
}
注意我仅限于Visual Studio 2005即。net 2.0
lines.Select(l => l.Trim()).ToArray();
对于。net 2.0:
static IEnumerable<string> GetTrimmed(IEnumerable<string> array)
{
foreach (var s in array)
yield return s.Trim();
}
使用:
lines = new List<string>(GetTrimmed(lines)).ToArray();
"那么唯一的方法就是老式的for循环吗?"是的,在。net 2中你没有Linq的东西。但说实话,"老派的for循环"也是最有效、最易读和最短的方法。那么问题是什么呢?
for(int i = 0; i < lines.Length; i++)
lines[i] = lines[i].Trim();
据此,我们在。net 2.0中有List<string>
。
那么,试试List<string>
。
String []lines = System.IO.File.ReadAllLines(path);
List<string> yourLinesTrimed = new List<string>;
foreach (String line in lines)
{
yourLinesTrimed.Add(line.Trim());
}
然后可以使用ToArray()
转换数组中的List<string>
。
让我们构建一个方法:
public String[] TrimAnArray(String[] lines)
{
List<string> yourLinesTrimed = new List<string>;
foreach (String line in lines)
{
yourLinesTrimed.Add(line.Trim());
}
return yourLinesTrimed.ToArray();
}
您也可以使用LINQ:
String []lines = System.IO.File.ReadAllLines(path)
.Select(line => line.Trim())
.ToArray();
编辑:
如果您仅限于。net 2.0,那么我会坚持使用在第二个代码示例中所做的for循环。我认为没有更好的方法了,for循环已经足够有效了。当然,有一些变通方法可以使LINQ在。net 2.0中工作,但我认为不值得这么麻烦。