我想讀取一個文件到一個全局數組中,循環訪問數組,並確定每個字符串對應的數量,然後在自己的組中找到總和。並將這些組分別按自己的唯一編號分組。分解二維數組的最有效方法?
,我在我閱讀的文本文件:
Name,50
Name,40
DifferentName,50
AnotherName,10
Name,60
什麼是分裂的逗號行的最簡單的方法,使數字對應的具體名稱,不知道哪個順序,他們將在嗎?
這裏是我到目前爲止使用的代碼。儘管現在它只是打開的文件對話框,我把它作爲一個建設性的參考。
string strFileName;
private void btnReadInFile_Click(object sender, EventArgs e)
{
//select the file
OpenFileDialog ofdGetFile = new OpenFileDialog();
if (ofdGetFile.ShowDialog() == DialogResult.Cancel)
{
//cancel
MessageBox.Show("User Canceled");
return;
}
else
{
//open the file
StreamReader myStreamReader;
strFileName = ofdGetFile.FileName;
FileStream input = new FileStream(strFileName, FileMode.Open, FileAccess.Read);
myStreamReader = new StreamReader(input);
// other
MessageBox.Show("Reading Complete", "Done!", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
private void btnShowGrade_Click(object sender, EventArgs e)
{
if (strFileName != null)
{
String[][] nameSums = System.IO.File.ReadLines(strFileName)
.Select(l => l.Split(',')) // split the line
.GroupBy(arr => arr[0]) // group by name
.Select(grp => new String[]{
grp.Key,
grp.Sum(arr => int.Parse(arr[1])).ToString()})
.ToArray();
}
else
{
MessageBox.Show("You need to read in a file first.");
}
}
}
我覺得必須有更好的方法來做到這一點。
迄今爲止,非常感謝您的幫助!我相信這個問題沒有解決的唯一原因是我缺乏溝通技巧。
查看他的數據,都不是唯一的。 – 2012-04-27 19:23:02
@YuriyFaktorovich:我的解釋是錯誤的。 OP的要求是:「讓數字符合他們的具體名稱」。所以我認爲他想要所有數字的名字。所以我按數字分組。 – 2012-04-27 19:55:44
@YuriyFaktorovich:編輯我的答案,現在有希望更清楚。 – 2012-04-27 20:16:54