2015-04-03 4 views
-1

Заранее благодарим за любую помощь, которую я здесь получаю. Я пытаюсь получить значения объектов внутри arraylist. У меня есть ArrayList сэндвичей, каждый сэндвич состоит из доливки, типа хлеба и цены. У меня нет проблем с созданием каждого отдельного сэндвича, а затем добавлением этого сэндвича в коллекцию. Да, я уверен, что многие скажут: «Почему вы используете arraylist?» У меня нет большой причины, кроме того, что я пытаюсь узнать, по крайней мере, как ее использовать, и у меня так же много умений в использовании списка.Чтение объектов внутри arraylist

ArrayList Sandwiches= new ArrayList(); 
ArrayList thisSandwich = new ArrayList(); 

thisSandwich.add("Ham and cheese"); 
thisSandwich.add("Wholemeal"); 
thisSandwich.add(4.50); 
Sandwiches.add(thisSandwich); 

thisSandwich.add("topping2"); 
thisSandwich.add("bread2"); 
thisSandwich.add(price2); 
Sandwiches.add(thisSandwich); 

thisSandwich.add("topping3"); 
thisSandwich.add("bread3"); 
thisSandwich.add(price3); 
Sandwiches.add(thisSandwich); 

Здесь, как мне отображать и получать значения для того, что было для сэндвича 2? Или как мне отображать и получать все значения сэндвича 1

+2

является то, что Java, а не C#? –

+0

заказ в Arraylist зависит от того, какой заказ добавлен, делая вещь хрупкой. Например, песок, в котором есть 3 части информации, другие 2. Итак, вы никогда не знаете, что есть. Используйте класс Sandwich и список для коллекции – Plutonix

+1

Первое правило использования 'ArrayList' не должно его использовать ... (Изучение того, как бросать объекты в разные типы, не требует использования или понимания' ArrayList') –

ответ

1

Это ужасающий дизайн. Но если вы настаиваете на том, чтобы пойти по этому пути безумия, вот один из разумно эффективных способов сделать это.

ArrayList[] sandwichArray = Sandwiches.ToArray(typeof(ArrayList)); 
Console.WriteLine(String.Format("Topping for sandwich 2 is {0}", sandwichArray[1][0])); 
Console.WriteLine(String.Format("Price for sandwich 1 is {0}", sandwichArray[0][2])); 
+0

LOL +1 для указания, что это ужасающий дизайн. –

+0

Ненавижу обвинять, но я предполагаю, что это домашнее задание. Параметры упражнения настолько произвольны и смешны. –

+0

Моя мысль тоже. Ссылки на бутерброды - это немного дешевая распродажа. Я помню много заданий, вращающихся вокруг магазина «Сэндвич» –

0
 ArrayList Sandwiches = new ArrayList(); 
     ArrayList thisSandwich = new ArrayList(); 

     thisSandwich.Add("Ham and cheese"); 
     thisSandwich.Add("Wholemeal"); 
     thisSandwich.Add(4.50F); // cast these as floats so you know they will convert correctly 
     Sandwiches.Add(thisSandwich); 

     // remember to clear out your sandwiches from the array or they will accumulate 
     thisSandwich = new ArrayList(); 
     thisSandwich.Add("topping2"); 
     thisSandwich.Add("bread2"); 
     thisSandwich.Add(5.45F); 
     Sandwiches.Add(thisSandwich); 

     thisSandwich = new ArrayList(); 
     thisSandwich.Add("topping3"); 
     thisSandwich.Add("bread3"); 
     thisSandwich.Add(6.71F); 
     Sandwiches.Add(thisSandwich); 

     // this will get you the total cost of the sandwiches 
     float total = 0F; 
     foreach (ArrayList al in Sandwiches) 
     { 
      float f = (float)al[2]; 
      total += f; 
     } 
     // this will get you the cost of sandwich #2 
     ArrayList s2 = (ArrayList)Sandwiches[1]; 
     float costOf2 = (float)s2[2]; 
+0

Бутерброды должны быть списком, и этот Sandwich должен быть индивидуальным сэндвичем, т.е. объектом класса Sandwich. то то, что вы делаете, имеет смысл. – Pandiri

Смежные вопросы