C#在foreach循环中修改字符串数组并更改相同的数组

C#在foreach循环中修改字符串数组并更改相同的数组,c#,C#,也许我问过这是一种糟糕的方式,所以让我试着解释一下 我有一个公共静态字符串[] public static string[] MyInfo {get;set;} 我通过 MyInfo = File.ReadAllLines(@"C:\myfile.txt"); 我想做的是在每一行上创建一个foreach,并根据x个规则对其进行修改。其中一行已被修改,更改MyInFo中的现有行 所以 不能在foreach循环中执行此操作。改用for。在foreach循环中不能执行此操作。使用表示。使用a表示:

也许我问过这是一种糟糕的方式,所以让我试着解释一下

我有一个公共静态字符串[]

public static string[] MyInfo {get;set;}
我通过

MyInfo = File.ReadAllLines(@"C:\myfile.txt");
我想做的是在每一行上创建一个foreach,并根据x个规则对其进行修改。其中一行已被修改,更改MyInFo中的现有行

所以


不能在
foreach
循环中执行此操作。改用
for

foreach
循环中不能执行此操作。使用
表示

使用a表示:

for(int i = 0; i < MyInfo.Length; i++)
{
   MyInfo[i] = formatLineHere(MyInfo[i]);       
}
for(int i=0;i
将a用于:

for(int i = 0; i < MyInfo.Length; i++)
{
   MyInfo[i] = formatLineHere(MyInfo[i]);       
}
for(int i=0;i
var myInfoList=new List();
foreach(MyInfo中的var myI)
{
var modifiedLine=formatLineHere(myI);
myInfoList.Add(modifiedLine);
}
MyInfo=myInfoList.ToArray();
更新

为了使用ToList()和ToArray()扩展方法,您需要对System.Linq的引用。

var myInfoList=new List();
foreach(MyInfo中的var myI)
{
var modifiedLine=formatLineHere(myI);
myInfoList.Add(modifiedLine);
}
MyInfo=myInfoList.ToArray();
更新


要使用ToList()和ToArray()扩展方法,您需要对System.Linq的引用。

或使用Linq,您可以执行以下操作:

MyInfo = MyInfo.Select(x => formatLineHere(x)).ToArray();

或者使用Linq,您可以:

MyInfo = MyInfo.Select(x => formatLineHere(x)).ToArray();