집 >백엔드 개발 >C#.Net 튜토리얼 >IEnumerable C#
IEnumerable은 GetEnumerator라는 하나의 메서드만 정의하는 인터페이스입니다. 이 메서드는 IEnumerator 인터페이스를 반환합니다. 이 인터페이스는 익명 유형의 클래스 목록 또는 컬렉션을 반복하는 데 사용됩니다. 여기에는 시스템이 포함되어 있습니다. Collections.Generic 네임스페이스. LINQ 쿼리 표현식 작업에도 사용됩니다. 이렇게 하면 컬렉션에 대한 읽기 전용 액세스만 허용되며, 기본 컬렉션을 상속하는 컬렉션은 for-each 루프를 사용하여 반복될 수 있습니다. IEnumerable 인터페이스는 제네릭이 아닌 모든 목록의 기본 인터페이스입니다. IEnumerable 인터페이스에는 네 가지 확장 방법이 있습니다. AsParallel(), AsQueryable(), Cast
구문은 다음과 같습니다.
public interface IEnumerable
컬렉션은 movenext() 및 Reset() 메서드를 사용하여 반복됩니다.
방법은 다음과 같습니다.
아래는 예시입니다.
코드:
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(); } } }
출력:
코드:
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); } } }
출력:
코드:
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(); } } }
출력:
코드:
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"); } } }
출력:
코드:
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; } } }
출력:
그래서 기사에서는 C#의 IEnumerable에 대해 자세히 설명했습니다. 또한 GetEnumerator와 같은 다양한 메서드와 AsParallel(), AsQueryable(), Cast
위 내용은 IEnumerable C#의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!