我試圖比較一個字符串列表與主列表一起編譯並打印出來的文本文件。我遇到的問題是可打印列表保持空白。我如何填充第三個列表?而且,這是否正確使用List<>
,如果不是,我應該使用什麼?C#比較兩個排序的列表並輸出到一個文件
編輯:對不起有關,該方法的運行之前,從兩個文件讀textInput
和textCompare
和已填充了琴絃的長度爲7個字符:一個從文本文件拉動時,其它從Excel片。然後我刪除任何空值,並嘗試將這兩個列表與listA.intersects(listB)
進行比較。 MSDN提到它需要通過交叉來工作,這就是爲什麼我把它放在foreach中的原因。
void Compare()
{
List<string> matches = new List<string>();
textInput.Sort();
textCompare.Sort();
progressBar.Maximum = textInput.Count;
int increment = 0;
for (int i = textCompare.Count - 1; i >= 0; i--)
{
if (textCompare[i] == null)
{
textCompare.RemoveAt(i);
}
}
foreach (string item in textInput)
{
matches = textInput.Intersect(textCompare).ToList();
increment++;
progressBar.Value = increment;
}
//A break point placed on the foreach reveals matches is empty.
foreach (object match in matches)
{
streamWriter.WriteLine(match);
}
doneLabel.Text = "Done!";
}
「比較字符串列表」是什麼意思?比較如何? – Gabe 2011-03-07 04:15:32
代替沒有你想要的語義的代碼(因此我們不能從它推斷出你正在嘗試做什麼),用英語告訴我們你正在嘗試做什麼。 – jason 2011-03-07 04:16:59
你的代碼示例中有很多混亂,除非你提供了一個用例,我不認爲任何人都可以給出答案 - 它看起來不需要排序 - 你想要打印什麼?排序順序中的唯一項目列表可能是? – BrokenGlass 2011-03-07 04:23:14