0

Maybe I asked this is a bad way so let me try to explain.

I have a public static string[]

public static string[] MyInfo {get;set;}

I set this via

MyInfo = File.ReadAllLines(@"C:\myfile.txt");

What I want to do is a foreach on each of those lines and modify it based on x number of rules. One the line has been modified change that exisiting line in MyInFo

so

foreach(string myI in MyInfo)
{
string modifiedLine = formatLineHere(myI);
//return this to MyInfo somehow.
}
Glory Raj
17.7k28 gold badges115 silver badges216 bronze badges
asked Dec 11, 2011 at 14:18

4 Answers 4

2

You can't do this in a foreach loop. Use for instead.

answered Dec 11, 2011 at 14:20
Sign up to request clarification or add additional context in comments.

Comments

1

Use a for:

for(int i = 0; i < MyInfo.Length; i++)
{
 MyInfo[i] = formatLineHere(MyInfo[i]); 
}
answered Dec 11, 2011 at 14:20

Comments

1
var myInfoList = new List<string>();
foreach (var myI in MyInfo)
{
 var modifiedLine = formatLineHere(myI);
 myInfoList.Add(modifiedLine);
}
MyInfo = myInfoList.ToArray();

Update

You will need a reference to System.Linq in order to use the ToList() and ToArray() extension methods.

answered Dec 11, 2011 at 14:22

Comments

0

Or with Linq you could do:

MyInfo = MyInfo.Select(x => formatLineHere(x)).ToArray();
answered Dec 11, 2011 at 14:29

Comments

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.