ci sono alcune differenze fondamentali tra l'ICollection e IEnumerable
- IEnumeration - Contiene unico metodo GetEnumerator per ottenere Enumerator e fare un loop
- ICollection è che contiene la seguenti metodi - Aggiungi/Rimuovi/Contiene/Conteggio/Copia
- ICollection è ereditato da IEnumerable
- Con ICollection è possibile modificare la collezione utilizzando i metodi come aggiungere/rimuovere, non avete la libertà di fare lo stesso con IEnumerable.
semplice programma: proprietà
using System;
using System.Collections;
using System.Collections.Generic;
namespace StackDemo
{
class Program
{
static void Main(string[] args)
{
List<Person> persons = new List<Person>();
persons.Add(new Person("John",30));
persons.Add(new Person("Jack", 27));
ICollection<Person> personCollection = persons;
IEnumerable<Person> personEnumeration = persons;
//IEnumeration
//IEnumration Contains only GetEnumerator method to get Enumerator and make a looping
foreach (Person p in personEnumeration)
{
Console.WriteLine("Name:{0}, Age:{1}", p.Name, p.Age);
}
//ICollection
//ICollection Add/Remove/Contains/Count/CopyTo
//ICollection is inherited from IEnumerable
personCollection.Add(new Person("Tim", 10));
foreach (Person p in personCollection)
{
Console.WriteLine("Name:{0}, Age:{1}", p.Name, p.Age);
}
Console.ReadLine();
}
}
class Person
{
public string Name { get; set; }
public int Age { get; set; }
public Person(string name,int age)
{
this.Name = name;
this.Age = age;
}
}
}
quindi, con quello, 'List' dovrebbe essere molto meglio, sì? –
@JanCarloViray - Tendo ad usare 'List' molto. Sebbene abbia il maggior overhead, fornisce la maggior parte delle funzionalità. –
Gli elenchi sono definiti più dai loro indicizzatori che dalla possibilità di ordinarli (avere un indicizzatore intero rende facile ordinare qualcosa, ma non è un requisito). – phoog