2016-12-14 6 views
-1

簡單的問題。將文件路徑(字符串)列表配對在一起,並存儲在某種類型的數組中。例如:幾百對將在稍後被引用,並且一旦列表被編譯爲匹配並存儲在數組中,就進行比較。什麼是最好的數組類型來存儲兩個鏈接的字符串?使用哪種數組類型來存儲由一個鍵引用的兩個字符串

C:\路徑\ path1.jpg,C:\ PATH2 \ path2.jpg

預先感謝您和原諒我的無知。

+1

您可以使用[字符串(字符串,字符串())](https://msdn.microsoft.com/en-us/library/x525za90(v = vs.110).aspx) – tinstaafl

+1

'兩個字符串由一個鍵引用「什麼/哪裏是關鍵? – Plutonix

+0

這取決於。如果第一個字符串的文件路徑列表始終是唯一的,則可以使用Dictionary集合,並將該對的第一個字符串作爲關鍵字(這必須是唯一的),第二個字符串作爲值。如果您只會使用存儲爲鍵值的第一個字符串進行搜索,那麼這隻會非常有用。如果您需要單獨的密鑰,則可以創建一個用於存儲兩個文件路徑的結構,然後使用單獨的密鑰和結構作爲值創建一個字典。或者一個鍵和元組,或者兩個列表或其他列表的混合。很多可能性。 –

回答

0

創建一個類,它代表了兩個路徑

Public Class LinkedPaths 
    Public Property Path1 As String 
    Public Property Path2 As String 
End Class 

然後創建的List(Of LinkedPaths)

Dim collection As New List(Of LinkedPaths) From 
{ 
    New LinkedPaths { .Path1 = "C:\PATH\path1.jpg", .Path2 = "C:\PATH\path2.jpg" }, 
    New LinkedPaths { .Path1 = "C:\PATH\path3.jpg", .Path2 = "C:\PATH\path4.jpg" } 
    New LinkedPaths { .Path1 = "C:\PATH\path5.jpg", .Path2 = "C:\PATH\path6.jpg" } 
} 

一個實例,然後你可以遍歷和比較這集

For Each pathPair As LinkedPaths In collection 
    Compare(pathPair.Path1, pathPair.Path2) 
Next 

用這種方法關鍵是類的LinkedPaths實例一起走兩條路。

如果您需要「真正」分離的密鑰對,但問題中未提及,但標題中的「密鑰」字會變得混淆。然後你可以使用字典中提到的評論

Dim collection As New Dictionary(Of String, LinkedPaths); 
0

調查Tuple(Of String, String)。但這只是集合中的數據類型。對於要使用的集合,無論是數組,列表(字符串,字符串)還是字符串(字符串,字符串的字符串)或其他,這取決於您以後如何訪問這些集合。

+0

在程序的後面,我將遍歷該列表以及該過程的結果,並將它們應用於兩個路徑,因爲它們是成對的。在這種情況下,同一時間拍攝的兩張圖像會根據其中一張圖像中的數據進行分類。我將研究這個'List(元組(字符串,字符串))'的列表 – Seyruuen

相關問題