프로그래밍 노트

LINQ에서 List의 복수 값 중에 특정 문자들이 포함하고 특정 문자들이 포함하지 않는 조건 본문

C#/기타

LINQ에서 List의 복수 값 중에 특정 문자들이 포함하고 특정 문자들이 포함하지 않는 조건

떡잎 2019. 10. 19. 23:13

LINQ에서 List의 복수 값 중에 특정 문자들이 포함하고 특정 문자들이 포함하지 않게하기

 

  
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace LinqTest01 

    class Person 
    { 
        private string mName = string.Empty; 
        private string mAddress = string.Empty; 
        private string mJob = string.Empty; 
        public string Name 
        { 
            get { return this.mName;  } 
        } 
        public string Address 
        { 
            get { return this.mAddress; } 
        } 
        public string Job 
        { 
            get { return this.mJob; } 
        } 
        public Person(string name, string address, string job) 
        { 
            this.mName = name; 
            this.mAddress = address; 
            this.mJob = job; 
        } 
    } 

    class Program 
    { 
        static void Main(string[] args) 
        { 
            List persons = new List(); 
            persons.Add(new Person("이소라", "서울", "간호사")); 
            persons.Add(new Person("김참치", "강원", "요리사")); 
            persons.Add(new Person("박장어", "전라", "장의사")); 
            persons.Add(new Person("고해삼", "서울", "변호사")); 
            persons.Add(new Person("나전복", "제주", "요리사")); 
            persons.Add(new Person("하멍게", "경상", "영양사")); 
            persons.Add(new Person("정해마", "충청", "변리사")); 

            string[] filter1 = { "서울", "제주", "충청" }; 
            string[] filter2 = { "장의사", "요리사" }; 

            var selectItems = from p in persons 
                where filter1.Any(f => p.Address.Contains(f)) 
                where filter2.All(f => !p.Job.Contains(f)) 
                select p; 

            foreach (var item in selectItems) 
            { 
                Console.WriteLine(item.Name + " " + item.Address + " " + item.Job); 
            } 

            Console.ReadLine(); 
        } 
    } 
}

Comments