2017-09-05 46 views
-3

我有2個ArrayList S和我想找到那些2.的相交2周的ArrayList

例共同的要素:

Arraylist 1包含:"Cat""Dog""Phone""Watch""Monkey".

Arraylist 2包含:"Dog""Phone""Chair".

由於結果我想有一個方法返回:"Dog""Phone"

我以前使用過Array,並且與Array相交,但我現在使用的是ArrayList

+0

你爲什麼不使用數組,如果你的作品?你爲什麼要使用ArrayList?你到目前爲止嘗試過什麼嗎?您是否厭倦了搜索選項(當您搜索問題標題時,BTW會立即找到結果)? – Reniuz

+2

[查找2個ArrayList之間的相同值並返回另一個ArrayList]的可能重複(https://stackoverflow.com/questions/9900181/find-same-values-between-2-arraylist-and-return-as-another- arraylist) – Reniuz

+1

不要再使用'ArrayList'了,沒有理由。使用通用的'List ',在這種情況下是'List '。 –

回答

1

試試這個,

ArrayList list1 = new ArrayList{ "cat", "dog" ,"phone", "watch"}; 
ArrayList list2 = new ArrayList{ "pen", "cat", "dog", "lamp" }; 

var elements = Enumerable.Intersect(list1.ToArray(), list2.ToArray()).ToArray(); 
ArrayList result = new ArrayList(elements); 

希望幫助,

0

你可以試試這個:

 ArrayList first = new ArrayList(); 
     first.Add("Cat"); 
     first.Add("Dog"); 

     ArrayList second = new ArrayList(); 
     second.Add("Dog"); 
     second.Add("Phone"); 

     ArrayList final = new ArrayList(); 
     foreach (var i in first.Cast<string>().Intersect(second.Cast<string>())) 
      final.Add(i); 

所得的ArrayList是Dog

0

我想實現的擴展方法Intersect ,所以你可以像任何其他人一樣使用它呃迭代集合:

public static class ArrayListExtensions 
{ 
    public static ArrayList Intersect(this ArrayList source, ArrayList other) 
     => new ArrayList(source.ToArray().Intersect(other.ToArray()).ToArray()); 
} 

用法:

var first = new ArrayList(new[] { "Cat", "Dog", "Phone", "Watch", "Monkey" }); 
var second = new ArrayList(new[] { "Dog", "Phone", "Chair" }); 

var intersection = first.Intersect(second); // intersection is now an ArrayList