IEnumerable C#

WBOY
Freigeben: 2024-09-03 15:32:12
Original
426 Leute haben es durchsucht

IEnumerable ist eine Schnittstelle, die nur eine Methode definiert, GetEnumerator. Die Methode gibt eine IEnumerator-Schnittstelle zurück. Diese Schnittstelle wird verwendet, um Listen oder Sammlungen von Klassen anonymer Typen zu iterieren. Es enthält das System. Collections.Generischer Namespace. Es wird auch für die Arbeit mit LINQ-Abfrageausdrücken verwendet. Dies ermöglicht nur einen Lesezugriff auf die Sammlung. Anschließend kann eine Sammlung, die die Hauptsammlung erbt, mithilfe einer for-each-Schleife iteriert werden. Die IEnumerable-Schnittstelle ist die Basisschnittstelle für alle nicht generischen Listen. Es gibt vier Erweiterungsmethoden für IEnumerable-Schnittstellen. Dies sind AsParallel(), AsQueryable(), Cast(), OfType(). In diesem Artikel wird die IEnumerable-Schnittstelle zusammen mit verschiedenen Beispielen ausführlich erläutert.

Syntax von IEnumerable C#

Die Syntax lautet wie folgt:

public interface IEnumerable
Nach dem Login kopieren

Die Sammlung wird mit den Methoden movenext() und reset() iteriert.

Erweiterungsmethoden in IEnumerable C#

Unten sind die Methoden:

  • Cast(IEnumerable): Die nicht generische Sammlung der IEnumerable-Schnittstelle wird in den angegebenen angegebenen Typ konvertiert.
  • OfType(IEnumerable): Die Elemente des IEnumerable werden basierend auf dem genannten Typ gefiltert.
  • AsParallel(IEnumerable): Dies wird verwendet, um die Ausführung paralleler Abfragen zu ermöglichen.
  • AsQueryable(IEnumerable): Dies wird verwendet, um die IEnumerable-Schnittstelle in die IQueryable-Schnittstelle zu konvertieren.

Beispiele zur Implementierung von IEnumerable C#

Unten sind die Beispiele:

Beispiel #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();
}
}
}
Nach dem Login kopieren

Ausgabe:

IEnumerable C#

Beispiel #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);
}
}
}
Nach dem Login kopieren

Ausgabe:

IEnumerable C#

Beispiel #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();
}
}
}
Nach dem Login kopieren

Ausgabe:

IEnumerable C#

Beispiel #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");
}
}
}
Nach dem Login kopieren

Ausgabe:

IEnumerable C#

Beispiel #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; }
}
}
Nach dem Login kopieren

Ausgabe:

IEnumerable C#

Fazit

Daher wurde in dem Artikel ausführlich über IEnumerable in C# berichtet. Außerdem wurden die verschiedenen Methoden wie GetEnumerator und andere erweiterte Methoden, die mit IEnumerable verknüpft sind, wie AsParallel(), AsQueryable(), Cast(), OfType() im Detail erläutert. Außerdem wurde anhand eines Beispiels die Verwendung der Methoden „Current“, „Next“ und „Reset“ demonstriert. Um mehr im Detail zu erfahren, wäre es ratsam, Beispielprogramme zu schreiben und diese zu üben.

Das obige ist der detaillierte Inhalt vonIEnumerable C#. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage