2014-08-28 73 views
-9

我有2個字符串數組 示例 Main數組包含「ABC」,「DEF」,「GHI」,「TEST」,「TEST」, 「ZXY」, 「ZXY」, 「ZXY」什麼是從另一個字符串數組中獲取字符串數組索引的最快方法C#

第二個數組包含 「TEST」 TEST」, 「ZXY」, 「ZXY」, 「ZXY」

我需要的輸出:Get整數數組主要陣列中包含的第二個陣列的指數 這樣的 輸出是3,4,5,6,7

注意:我需要最快的方法來做到這一點

謝謝:)

+2

'-1'因爲零努力。 – 2014-08-28 08:39:52

+0

我無法找到一個方法來做到這一點 – Sumthg 2014-08-28 08:44:08

+0

馬可,開始努力工作了,你會如何嘗試這個僞代碼(提示:for循環和索引),然後翻譯成C#代碼 – Sayse 2014-08-28 08:44:54

回答

2

也許:

int[] matchingIndices = arr1.Select((str, index) => new { str, index }) 
      .Where(x => arr2.Contains(x.str)) 
      .Select(x => x.index) 
      .ToArray(); 

非LINQ的方式(也許是一點點更有效):

List<int> matchingIndices = new List<int>(arr1.Length); 
for (int i = 0; i < arr1.Length; i++) 
{ 
    if (Array.IndexOf<string>(arr2, arr1[i]) >= 0) 
     matchingIndices.Add(i); 
} 
int[] result = matchingIndices.ToArray(); 
相關問題