Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


loopa igenom alla object

Postades av 2003-01-03 12:35:32 - Jimmy Mattsson, i forum c# (c-sharp), Tråden har 8 Kommentarer och lästs av 1252 personer

Jag har ett problem som jag grubblat på en längre tid. Eftersom jag inte har nån kod så försöker jag förklara problemet med ett exempel.

I en bilfabrik så tillverkas det nya bilar varje dag. Det är olika från dag till dag och alla bilar har olika egenskaper (så som färg, märke osv).Jag vill sedan på slutet av dagen vill se vilka bilar vi gjort under dagen.

Jag har en car class som alla objekt (bilar) skapas ifrån och i slutet vill jag loopa igenom alla objekt som skapats genom car. Hur gör man det?


Svara

Sv: loopa igenom alla object

Postades av 2003-01-03 13:53:34 - Fredrik Salomonsson

Hej.

När du skapar objekt av klassen car, lägg referenser till dessa i en array eller en collection.
Då har du referenser till alla skapade bilar under dagen.

//fredda


Svara

Sv: loopa igenom alla object

Postades av 2003-01-03 14:37:46 - Patrik Löwendahl

eller bygg en egen collection .. ärv från Ienumarotr och IEnumrabel, eller implementera ICollection ...


Svara

Sv: loopa igenom alla object

Postades av 2003-01-04 07:48:56 - Jimmy Mattsson

Är inte säker på vad ni menar, är ganska ny på C# och har inte exprementerat så djupt i .Net framework än (har nyligen gått över från vb.net till C#). Jag fråga även min lite bättre kollega om han förstod, men han sa att det var överkurs.

*edit*

Efter ha grubblat ett par timmar till så kom jag fram till detta:
<code>
Car car = new Car();
ArrayList array = new ArrayList();
array.Add(car);
</code>

Är det så ni menar? Och om det är så, hur ska jag använda mig av det?


Svara

Sv: loopa igenom alla object

Postades av 2003-01-04 10:37:55 - Fredrik Salomonsson

Hej.

Precis så ja.
Om du istället för en ArrayList använder t.ex Hashtable kan du också lägga till ett unikt värde till ditt objekt för att kunna plocka ut bara det ur samlingen.

När du sedan vill titta på alla bilarna bör det se ut liknande detta:

foreach (car c in myCarArray)
{
MessageBox.Show(c.toString());
}


//fredda


Svara

Sv: loopa igenom alla object

Postades av 2003-01-05 16:26:14 - Per Hultqvist

Beroende på vad du vill göra med objekten så kan du lagra datan på olika sätt. Det brukar visa sig (för mig iallafall) att det är hur du vill hämta elementen ur datastrukturen som avgör vilken lösning man ska välja av nedanstående. Om du näjer dig med att loppa igenom elementen från början till slut så räcker det med en array av Cars, men om du i st bara kommer att leta efter enstaka objekt via en nyckel (t ex registreringsnummer) så är Hashtable:s bättre lösning, o s v...

Jag försöker sammanfatta lite av vad de andra svarat och vad du redan kommit fram till och lite egna tankar om de olika lösningarna:

1) Använda ArrayList, Collections
Fördel : Enkel att jobba med
Nackdel : Ej typad (returnerar Object), dvs du får typkonvertera till och från typen Car innan du kan använda objektet.

2) Använda Hashtable.
Fördel : Enkel att jobba med, supersnabbt att hitta specifika objekt om du har en vettig nyckel på alla objekt (t ex registreringsnummer, karossnummer, tillverkningsnummer el dyl)
Nackdel : samma som arraylist

3) Använda en vanlig array av Car:s
Fördel : Typad och klar. Minneseffektiv, nästan ingen overhead alls
Nackdel : Du får skriva egen logik för att hitta specifika objekt om du inte nöjer dig med att loopa igenom listan från början till slut.

4) Diverse olika varianter med Arv och Interface (CollectionBase, IEnumerable m m)
Fördel : Du får typade datastrukturer med samma fördelar som Hashtabels,Collections, ArrayLists men utan dess nackdelar.
Nackdel : Mer kod att skriva själv...

Det finns säkert fler alternativ, men detta är nog tillräckligt för att visa att det inte finns en bästa lösning. Du får helt enkelt göra en avvägning mellan prestanda vid sökningar, minneseffektivitet (prestande vid extremt många element), utvecklingstid, bekvämlighet o s v...

/Per Hultqvist


Svara

Sv: loopa igenom alla object

Postades av 2003-01-05 19:53:58 - Jimmy Mattsson

Jag har exprementerat en del men tyvärr så får jag inte fram det jag vill ha.

Jag vill kunna arbeta med en speciell bil och dess egenskaper den fått. Ex. om jag har en bil som har fått röd färg men sedan så ska den lackas om till Gul.


Svara

Sv: loopa igenom alla object

Postades av 2003-01-05 20:08:15 - Per Hultqvist

Har du någon vettig nyckel att använda? Typ reg nr eller dylikt?

I såfall låter det som om du ska använda en HashTable, som någon föreslog.

<code>
HashTable mCars=new HashTable();
mCars.Add(car1,"ABC123"); // lägg till 3 Car-objekt, car1, car2 och car3
mCars.Add(car2,"DEF456");
mCars.Add(car3,"GHI789");
</code>
För att ändra egenskaper på en speciell bil, via dess registreringsnummer :

<code>
Car mCar=(Car)mCars["DEF456"];
mCar.Color=System.Color.Yellow; // Eller:

((Car)mCars["DEF456"]).Color=System.Colors.Yellow;
</code>
Du måste typkonvertera till Car eftersom HashTable returnerar Object och inte Car. Detta kan du undvika genom att ärva eller kapsla in en HashTable i en egen klass, men det är inte nödvändigt.

/Per Hultqvist


Svara

Sv: loopa igenom alla object

Postades av 2003-01-05 22:15:43 - Jimmy Mattsson

Tack Hultan och andra ni andra, det funkar perfekt.

Det ända jag fick ändra var att byta plats på Nyckeln och värdet när man lade till information:

mCars.Add("ABC123", car1);

Tack än en gång!


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 159
27 952
271 704
860
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies