IEnumerable C#

WBOY
Libérer: 2024-09-03 15:32:12
original
436 Les gens l'ont consulté

IEnumerable est une interface qui définit une seule méthode, GetEnumerator. La méthode renvoie une interface IEnumerator. Cette interface est utilisée pour parcourir des listes ou des collections de classes de types anonymes. Il contient le système. Collections.Espace de noms générique. Il est également utilisé pour fonctionner avec l'expression de requête LINQ. Cela permet uniquement un accès en lecture seule à la collection, puis une collection qui hérite de la collection principale peut être itérée à l'aide d'une boucle for-each. L'interface IEnumerable est l'interface de base pour toutes les listes non génériques. Il existe quatre méthodes d'extension des interfaces IEnumerable. Il s'agit de AsParallel(), AsQueryable(), Cast(), OfType(). Cet article expliquera en détail l'interface IEnumerable ainsi que divers exemples.

Syntaxe de IEnumerable C#

La syntaxe est la suivante :

public interface IEnumerable
Copier après la connexion

La collection est itérée à l'aide des méthodes movenext() et reset().

Méthodes d'extension dans IEnumerable C#

Voici les méthodes :

  • Cast(IEnumerable) : La collection non générique de l'interface IEnumerable est convertie dans le type spécifié mentionné.
  • OfType(IEnumerable) : Les éléments du IEnumerable sont filtrés en fonction du type mentionné.
  • AsParallel(IEnumerable) : Ceci est utilisé pour activer l'exécution de requêtes parallèles.
  • AsQueryable(IEnumerable) : Ceci est utilisé pour convertir l'interface IEnumerable en interface IQueryable.

Exemples d'implémentation de IEnumerable C#

Voici les exemples :

Exemple n°1

Code :

using System;
using System.Diagnostics;
using System.Reflection;
using System.Collections;
namespace TestEg
{
class Test : IEnumerable
{
Test[] coll = null;
int Fi = 0;
public String Fname { get; set; }
public string lastnme { get; set; }
public Test()
{
coll = new Test[10];
}
public void Add(Test item)
{
coll[Fi] = item;
Fi++;
}
// IEnumerable Member
public IEnumeratorGetEnumerator()
{
foreach (object o in coll)
{
if(o == null)
{
break;
}
yield return o;
}
}
}
class Program
{
public static void Main(String[] args)
{
Test tobj = new Test();
tobj.Fname = "viki";
tobj.lastnme = "krish";
Test tobj1 = new Test();
tobj1.Fname = "nand";
tobj1.lastnme = "viki";
Test myList = new Test();
Test tobj2 = new Test();
tobj2.Fname = "vyapini";
tobj2.lastnme = "viki";
Test tobj3 = new Test();
tobj3.Fname = "tai";
tobj3.lastnme = "viki";
myList.Add(tobj);
myList.Add(tobj1);
myList.Add(tobj2);
myList.Add(tobj3);
foreach (Test obj in myList)
{
Console.WriteLine("Fname:" +  obj.Fname + "\t\t" + "lastnme :" + obj.lastnme);
}
Console.ReadLine();
}
}
}
Copier après la connexion

Sortie :

IEnumerable C#

Exemple n°2

Code :

using System;
using System.Diagnostics;
using System.Reflection;
using System.Collections;
public class test : IEnumerable
{
public string Student1 { get; set; }
public string Student2 { get; set; }
public string Student3 { get; set; }
public IEnumeratorGetEnumerator() { return new testEnumerator(this); }
}
public class testEnumerator : IEnumerator
{
public testEnumerator(test ts) { _ts = ts; }
private test _ts;
private int _index = 0;
public void Reset() { _index = 0; Current = null; }
public object Current { get; private set; }
public bool MoveNext()
{
_index++;
/**/ if (_index == 1) { Current = _ts.Student1; return true; }
else if (_index == 2) { Current = _ts.Student2; return true; }
else if (_index == 3) { Current = _ts.Student3; return true; }
else return false;
}
}
class Program
{
public static void Main(String[] args)
{
varts = new test() {Student1 = "vignesh", Student2 = "nandhini", Student3 = "vyapini"};
foreach (string name in ts)
{
Console.WriteLine(name);
}
}
}
Copier après la connexion

Sortie :

IEnumerable C#

Exemple #3

Code :

using System.Linq;
using System.Collections.Generic;
using System;
namespace TestOper
{
public class testclass
{
public inteid { get; set; }
public string ename { get; set; }
public double salary { get; set; }
}
class Program
{
public static void Main()
{
List<testclass>listtestclasss = new List<testclass>
{
new testclass { eid= 1001, ename = "viki", salary = 1000 },
new testclass { eid= 1002, ename = "nandhini", salary = 600 },
new testclass { eid= 1003, ename = "vyapinin", salary = 10000 }
};
Dictionary<int, testclass>empdic = listtestclasss.ToDictionary(x =>x.eid);
foreach (KeyValuePair<int, testclass>kvp in empdic)
{
Console.WriteLine("eid" + kvp.Key + " ename : " + kvp.Value.ename + ", salary: " + kvp.Value.salary);
}
Console.ReadKey();
}
}
}
Copier après la connexion

Sortie :

IEnumerable C#

Exemple n°4

Code :

using System;
using System.Collections.Generic;
using System.Linq;
class Program
{
static void Main()
{
int[] numbers = new int[]
{
1,13,51,75
};
Dictionary<int, bool>dic =
numbers.ToDictionary(v => v, v => true);
foreach (KeyValuePair<int, bool> pair in dic)
{
Console.WriteLine(pair);
}
List<string> names = new List<string>()
{
"vignesh","jagan","nyan","ravi","siva","sethu"
};
var result = names.ToDictionary(x => x, x => true);
if (result.ContainsKey("jagan"))
{
Console.WriteLine("name exists");
}
}
}
Copier après la connexion

Sortie :

IEnumerable C#

Exemple #5

Code :

using System;
using System.Collections.Generic;
using System.Linq;
namespace LINQDemo
{
class Program
{
static void Main(string[] args)
{
List<emp>sl = new List<emp>()
{
new emp(){empid = 1, empname = "James", empgender = "Male",eage=60},
new emp(){empid = 2, empname = "Sara", empgender = "Female",eage=90},
new emp(){empid = 3, empname = "Steve", empgender = "Male",eage=80},
new emp(){empid = 4, empname = "Pam", empgender = "Female",eage=70},
new emp(){empid = 5, empname = "James", empgender = "Male",eage=60},
new emp(){empid = 6, empname = "Sara", empgender = "Female",eage=50},
new emp(){empid = 7, empname = "Steve", empgender = "Male",eage=20},
new emp(){empid = 8, empname = "Pam", empgender = "Female",eage=40}
};
IQueryable<emp>iq = sl.AsQueryable()
.Where(t =>t.eage> 40);
foreach (varemp in iq)
{
Console.WriteLine( $"empid : {emp.empid}  empname : {emp.empname} eage : {emp.eage} empgender : {emp.empgender} ");
}
Console.ReadKey();
}
}
public class emp
{
public intempid { get; set; }
public string empname { get; set; }
public string empgender { get; set; }
public inteage { get; set; }
}
}
Copier après la connexion

Sortie :

IEnumerable C#

Conclusion

Ainsi, l'article explique en détail IEnumerable en C#. Il a également expliqué en détail les différentes méthodes telles que GetEnumerator et d'autres méthodes étendues associées à IEnumerable telles que AsParallel(), AsQueryable(), Cast(), OfType(). Il a également démontré avec un exemple l'utilisation des méthodes actuelles, suivantes et de réinitialisation. Pour en savoir plus en détail, il serait conseillé d'écrire des exemples de programmes et de les mettre en pratique.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal