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


C#: ArrayList - att hitta "duplicates"/kopior

Postades av 2005-06-12 15:03:15 - Ted Ekeroth, i forum c# (c-sharp), Tråden har 7 Kommentarer och lästs av 905 personer

Hej,

jag använder ArrayLists i mitt C# program, och vill nu ta fram antalet "duplicates" i den listan. I detta fall sparar jag en siffra som representerar en viss sak.
Jag letar efter en metod som kan räkna antal träffar i en ArrayList med ett visst värde - finns det?

Man kan ju förstås göra en for-loop, men det verkar väldigt bökigt o kladdigt så jag har letat lite efter en metod som gör det men har inte haft nån tur i mitt sökande =(

Någon som vet?

MVH


Svara

Sv: C#: ArrayList - att hitta "duplicates"/kopior

Postades av 2005-06-12 17:26:40 - Björn Österman

Hej Ted

Vad jag vet så finns det inte någon sådan funktion. Men jag ser inte varför du tycker att det skulle vara bökigt med en for-loop, det är iaf det som skulle användas i den funktion som du letar efter.

public int numerOfDuplicates(ArrayList list, int value) {
  int result = 0;
  for ( int i = 0 ; i < list.Count ; i++ ) {
    if ( list[i] == value ) result++;
  }
  return result;
}

eller lite kortare:
public int numerOfDuplicates(ArrayList list, int value) {
  int result = 0;
  foreach ( int item in list ) if ( item == value ) result++;
  return result;
}


Eller så kan du göra en egen ArrayList som inkluderar den funktionen:

public class MyArrayList:ArrayList {
  public int numerOfDuplicates(int value) {
    int result = 0;
    foreach ( int item in this ) if ( item == value ) result++;
    return result;
  }
}


// MvH Björne

PS. Såsen är skriven från huvet, så jag har antagligen lite syntax-fel.


Svara

Sv: C#: ArrayList - att hitta "duplicates"/kopior

Postades av 2005-06-13 17:29:03 - Mikael Sand

Jag kan garantera dig att även om du hittar en listtyp som har en funktion som heter FindDuplicate() eller liknande, som t ex en komponent från nätet eller liknande så innehåller den ända någon form av for-loop, om än på binär nivå.

Så du kommer inte undan :-)

//Mikael


Svara

Sv: C#: ArrayList - att hitta "duplicates"/kopior

Postades av 2005-06-14 10:16:06 - Emma Magnusson

En for-loop bökig och kladdig??? Mycket renare kan du inte skriva det i det här fallet...

Jag instämmer med föregående två talare, kanske med rekommendationen att skapa din egen listklass, då kan du bara plocka in den även i andra projekt för liknande funktionalitet.

/Emma


Svara

Sv:C#: ArrayList - att hitta "duplicates"/kopior

Postades av 2005-06-14 15:05:03 - Ted Ekeroth

Verkar onekligt så...

Har alltid gillat redan byggda metoder för saker och ting... Som exempelvis PHP erbjudar - en massa fina funktione som fixar saker o ting... Känns meningslöst att behöva skriva ändå enkla sökningar själv.

Nåja, tack för tips o kommentarer!


Svara

Sv: C#: ArrayList - att hitta "duplicates"/kopior

Postades av 2005-06-22 22:11:33 - Mattias Olgerfelt

Ett alternativ är ju att undvika dubletterna när man ploppar in dem... gör du med Contains().

/M


Svara

Sv:C#: ArrayList - att hitta "duplicates"/kopior

Postades av 2005-06-23 09:01:53 - Roger Alsing

<b>Jag kan garantera dig att även om du hittar en listtyp som har en funktion som heter FindDuplicate() eller liknande, som t ex en komponent från nätet eller liknande så innehåller den ända någon form av for-loop, om än på binär nivå.

Så du kommer inte undan :-)
</b>

det där behöver ju inte alls vara sant.

den skulle kunna ha en intern hashtabell där objektet är nyckel och värdet är antalet dubletter..

och i listans .add metod så skulle den kunna räkna upp antalet dubletter..


public int Add (object item)
{

int count = GetDuplicates(item)+1;
hashtable[item]=count;

base.add(item);
}


public int GetDuplicates(object item)
{
int count = 0;
if (hashtable.containskey(item)
{
count = (int)hashtable[item];
}
return count;
}


vilket dessutom skulle ge väldigt mycket bättre prestanda och du har stora listor...


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 165
27 952
271 704
728
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