2016-02-18 49 views
0

好吧,這是我的第一個問題。所以,我有當前的代碼(使用C#注IM) -相交按字母順序排序結果c#

public static void ReadSuburbs() 
     { 
      String directory = @"C:\Address Sorting\"; 
      String[] linesA = File.ReadAllLines(Path.Combine(directory, "FileA-Database.txt")); 
      String[] linesB = File.ReadAllLines(Path.Combine(directory, "Suburbs.txt")); 

      IEnumerable<String> onlyB = linesB.Intersect(linesA); 

      File.WriteAllLines(Path.Combine(directory, "ResultsSuburbs.txt"), onlyB); 
     } 

什麼即時試圖做的是從數據庫中獲得所有的郊區,準確地打印出來,因爲他們在文本文件中。所以生病只是給你一個我希望得到的結果的例子。

比方說我的數據庫包含街道名稱

12 margret st kallangur 

14 simpson st zillmere 

43 pauls rd bowen hills 

而且suburbs.txt包含了所有郊區在澳大利亞

列表結果即時尋找將

kallangur 

zillmere 

bowen hills 

但是我得到的是

Bowen HIlls 
Kallangur 
Zillmere 

是否有另一種方法,我可以使用除了相交,以獲得結果即時尋找?

編輯:所以基本上我已經是一個完整的已輸入正確地址的數據庫 - 所以基本上我們有12聖街卡爾蘭在這個數據庫,我需要做很多其他的地址是獨立的郊區從街道名稱。

+1

我不知道你是怎麼得到任何輸出,因爲'12瑪格麗特ST kallangur'和其他文件只是' kallangur'不是相同的字符串。在您的示例中,FileA-Database.txt中沒有一行完全匹配Suburbs.txt中的一行。 –

+0

.Intersect()不應更改標記元素按照收集順序排列的順序。請參閱「備註」一節https://msdn.microsoft.com/library/bb460136%28v=vs.100% 29.aspx?f = 255&MSPPError = -2147217396 –

+0

Suburbs.txt中的郊區是否按字母順序排序?情況可能如此。 – Rahul

回答

1

如果你有

IEnumerable<String> onlyB = linesB.Intersect(linesA); 

linesB的內容定義結果序列的順序。如果你想linesA定義的順序,只需打開語句來包圍和使用

IEnumerable<String> onlyB = linesA.Intersect(linesB); 
+0

謝謝!這解決了我的問題:)我也明白我做錯了什麼。哈哈woops –

+0

您應該知道,如果您在同一郊區有多個地址,則每個郊區只能得到一個結果序列中的一個條目! – NineBerry

+0

Ahh剛剛意識到,就在那時,當我正在瀏覽文件,而不是勺子喂,所以我可以有一個提示,以解決這個問題? –