List
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NumGroup
{
public int index;
public string name;
public NumGroup(int index, string name)
{
this.index = index;
this.name = name;
}
}
public class LinqExample : MonoBehaviour
{
List numbersA = new List();
List numbersB = new List();
List numGroupA = new List();
List numGroupB = new List();
void Start()
{
// numbersA : 1,2,5,8
numbersA.Add(1);
numbersA.Add(2);
numbersA.Add(5);
numbersA.Add(8);
// numbersB : 1,3,5,7,9
numbersB.Add(1);
numbersB.Add(3);
numbersB.Add(5);
numbersB.Add(7);
numbersB.Add(9);
// FindAll 메서드
// list 에 저장되어 있는 int 값 n 을 이용해 n % 2 == 0 연산이 옳으면 저장 한다.
List findallA = numbersA.FindAll(n => n % 2 == 0);
// 결과 : 2, 8
// FindAll 메서드
// list 에 저장되어 있는 int 값 n 을 이용해 n != numbersB[0] 연산이 옳으면 저장 한다.
List findallB = numbersA.FindAll(n => n != numbersB[0]);
// 결과 : 2, 5, 8
///
/// class 형식의 데이터 연산
///
// numbersA : 1 "가나다" , 2 "마바사" , 5 "아자차" , 8 "파타하"
numGroupA.Add(new NumGroup(1, "가나다"));
numGroupA.Add(new NumGroup(2, "마바사"));
numGroupA.Add(new NumGroup(5, "아자차"));
numGroupA.Add(new NumGroup(6, "파타하"));
// numbersB : 1 "AAA" , 3 "BBB" , 5 "CCC" , 7 "DDD" , 9 "EEE"
numGroupB.Add(new NumGroup(1, "AAA"));
numGroupB.Add(new NumGroup(3, "BBB"));
numGroupB.Add(new NumGroup(5, "CCC"));
numGroupB.Add(new NumGroup(7, "DDD"));
numGroupB.Add(new NumGroup(9, "EEE"));
// FindAll 메서드
// list 에 저장되어 있는 NumGroup 클래스 n(numGroupA) 을 이용해 n.index % 2 == 0 연산이 옳으면 저장 한다.
List findallGroupA = numGroupA.FindAll(n => n.index % 2 == 0);
// 결과 : 2 "마바사" , 8 "파타하"
// FindAll 메서드
// list 에 저장되어 있는 NumGroup 클래스 n(numGroupA) 을 이용해 n.index != numGroupB[0].index 연산이 옳으면 저장 한다.
List findallGroupB = numGroupA.FindAll(n => n.index == numGroupB[0].index);
// 결과 : 1 "가나다"
// FindAll 메서드
List findallGroupC = new List();
// List의 AddRange()는 한번에 다수의 데이터(데이터 목록)를 추가 할 수 있다. (IEnumerable 인터페스를 구현한 컬렉션 객체의 추가가 가능하다.)
// list 에 저장되어 있는 NumGroup 클래스 n(numGroupA) 을 이용해 n.index != numGroupB[i].index 연산이 옳으면 더한다.
for (int i = 0; i < numGroupB.Count; i++)
{
findallGroupC.AddRange(numGroupA.FindAll(n => n.index == numGroupB[i].index));
}
// 결과 : 1 "가나다" , 5 "아자차"
}
}
댓글 없음:
댓글 쓰기