2012-04-07 6 views
0

Ich habe eine ArrayList in Sitzung, sagen wir zum Beispiel [305,306,380].Zwei ArrayList Manipulation

Auf einreichen, Benutzerwahl andere Produkte, die ich sie in der 2. Array speichern, zum Beispiel [390,305,480,380]

Wie kann ich weitere drei Arrays, bei denen

  1. Alle neuen Werte [390,480]

  2. Alle Werte in beiden Listen [305,380]

  3. Alle Werte von list1 die list2 [306]

Ich brauche diese in ASP.NET 4.0 C#

+1

Haben Sie schon einmal etwas versucht? – Mithrandir

Antwort

4

Sie können ArrayList.ToArray() verwenden, um Arrays zu erhalten gegen Ihre Arraylisten. Dann LINQ können Sie ganz einfach bekommen, was Sie mit Except möchten ein Intersect Methoden, zum Beispiel

array2.Except(array1) 
array1.Except(array2) 
array1.Intersect(array2) 

Edit: Vollständige Code

Entsprechend Ihrer Anforderung, Ihr Code aussehen ähnliche kann dies;

 ArrayList arrayList1 = new ArrayList(new int[] { 305, 306, 380 }); 
     ArrayList arrayList2 = new ArrayList(new int[] { 390, 305, 480, 380 }); 

     int[] array1 = (int[])arrayList1.ToArray(typeof(int)); 
     int[] array2 = (int[])arrayList2.ToArray(typeof(int)); 

     //1. All New values 
     int[] uniqueInArray2 = array2.Except(array1).ToArray(); 

     //2. Common values 
     int[] commonValues = array1.Intersect(array2).ToArray(); 

     //3. Values of arrayList1 which are not in arrayList2 
     int[] uniqueInArray1 = array1.Except(array2).ToArray(); 
+0

Kann es nicht machen Arbeit, überprüfen Sie meinen Screenshot pls http://prntscr.com/7ubvb –

+0

Sorry, ich war für eine lange Zeit von meinem System. Ich habe den vollständigen Code hinzugefügt. Hoffentlich wird es helfen! – ABH

+0

vielen Dank, ich habe es getan :))) –

2

Verwenden HashSet die folowing Weise sind in:

var first = new HashSet<int>(); 
first.Add(...); 

var second = ...; 

1. second.ExceptWith(first); 
2. first.IntersectWith(second); 
3. first.ExceptWith(second); 
+0

Kann es nicht funktionieren, überprüfen Sie meinen Screenshot http://prntscr.com/7ubvb –

+0

Wenn Sie 'sec.ExceptWith (erste);' 'second' wird Element, die in' first' davon entfernt sind –