'LINQ'에 해당되는 글 4건

https://youtu.be/bA3oTTVseiE

LINQ 마지막 강의 입니다.

고생하셨습니다~

 

1. Conversion operators
- LINQ Result =} IEnumerable{T}
- ToArray()
  var doublesArray = sortedDoubles.ToArray();
- * ToList()
  var wordList = sortedWords.ToList();
- ToDictionary()
   var scoreRecordsDict = scoreRecords.ToDictionary(sr =} sr.Name);
- * OfType{T}()
  var doubles = numbers.OfType{double}();


2. Element operators
- First()
  (from p in products where p.ProductID == 12 select p) .First();
  .Single() ?
- * FirstOrDefault()
  int firstNumOrDefault = numbers.FirstOrDefault();
  .SingleOrDefault() ?
- Last()
- LastOrDefault()
- ElementAt()
  (from n in numbers where n } 5 select n).ElementAt(1);


3. Generators operators
- Range()
  From n in Enumerable.Range(100, 50) select (Number: n, OddEven: n % 2 == 1 ? "odd" : "even");
- Repeat()
  var numbers = Enumerable.Repeat(7, 10);


4. Quantifiers
- * Any()
  bool iAfterE = words.Any(w =} w.Contains("ei"));
- All()
  bool onlyOdd = numbers.All(n =} n % 2 == 1);


5. Aggregate Operators
- * Count()
  int uniqueFactors = factorsOf300.Distinct().Count();
- Sum()
  double numSum = numbers.Sum();
- Min()
  int minNum = numbers.Min();
- Max()
  int maxNum = numbers.Max();
- Average()
  double averageNum = numbers.Average();
- Aggregate()
  double endBalance = attemptedWithdrawals.Aggregate(startBalance, (balance, nextWithdrawal) =} ((nextWithdrawal {= balance) ? (balance - nextWithdrawal) : balance));


6. Sequence Operations
- Concat – 지연 실행 
  Var allNumbers = numbersA.Concat(numbersB);
  Union과 비슷하나 중복 제거를 안함
- Zip – 지연 실행
  Int dotProduct = vectorA.Zip(vectorB, (a, b) =} a * b).Sum();
  각 시퀀스에 인덱스를 이용해서 병합
- SequenceEqual
  bool match = wordsA.SequenceEqual(wordsB);


7. Query Execution
- Deferred Execution 지연 실행
  var q = from n in numbers select ++i;
  Foreach (var v in q) { Console.WriteLine($”v={v}, i={i}”); }
- Forcing Immediate Execution 바로 실행
  var q = (from n in numbers select ++i).ToList();
  Foreach (var v in q) { Console.WriteLine($”v={v}, i={i}”); }
- Reuse Query
  var lowNumbers = from n in numbers where n {= 3 select n;


8. Join Operations
- Cross Join
  from c in categories join p in products on c equals p.Category select (Category: c, p.ProductName);
- Group Join
  from c in categories join p in products on c equals p.Category into ps select (Category: c, Products: ps);
- Cross Group Join
  from c in categories join p in products on c equals p.Category into ps from p in ps select (Category: c, p.ProductName);
- Left Outer Join
  from c in categories join p in products on c equals p.Category into ps from p in ps.DefaultIfEmpty() select (Category: c, ProductName: p == null ? "(No products)" : p.ProductName);
- Right Outer Join? 다중키인 경우?
- 메뉴 항목 추가/삭제 화면에 등록 메뉴와 미등록 메뉴를 분리해서 보여주는 경우 사용

 

            var allMenus = CMenus.CMenuList;
            var regMenus = new List 
                {
                    new CMenu{ MenuId = 1, ParentId = 0, DisplayName = "Menu1"},
                    new CMenu{ MenuId = 3, ParentId = 0, DisplayName = "Menu3"},
                    new CMenu{ MenuId = 5, ParentId = 0, DisplayName = "Menu5"},
                    new CMenu{ MenuId = 12, ParentId = 1, DisplayName = "Menu12"},
                    new CMenu{ MenuId = 14, ParentId = 1, DisplayName = "Menu14"},
                };
            var unregMenus = from aMenu in allMenus
                             join rMenu in regMenus
                             on aMenu.MenuId equals rMenu.MenuId into joiner
                             from j in joiner.DefaultIfEmpty()
                             where j == null
                             select aMenu;

            foreach (var menu in unregMenus)
            {
                Console.WriteLine($"{menu.MenuId}, {menu.ParentId}, {menu.DisplayName}");
            }

 

 

'Windows App(Universal App) > Beginner' 카테고리의 다른 글

Create a UWP app with File System Access  (0) 2020.07.24
Install and update UWP apps from the Web  (0) 2020.04.25
LINQ - Join Operations - part5/5  (0) 2020.04.15
LINQ part 4  (0) 2020.02.11
LINQ part 3  (0) 2020.02.04
LINQ part2  (0) 2020.01.31
블로그 이미지

kaki104

This blog covers the latest technologies in Microsoft .Net. In 2020, I will be talking about Uno Platform frequently. http://youtube.com/FutureOfDotNet https://twitter.com/kaki104

Tag join, LINQ, linq101

댓글을 달아 주세요

* Groupings
- group
  - group n by n % 5 into g

* Set operation
- Distinct 중복제거
  - var uniqueFactors = factorsOf300.Distinct();
- Union 중복제거 결합
  - var uniqueNumbers = numbersA.Union(numbersB);
- Intersect 교집합
  - var commonNumbers = numbersA.Intersect(numbersB);
- Except 제외
  - IEnumerable aOnlyNumbers = numbersA.Except(numbersB);     

 

https://youtu.be/WR8p4bKuqyI

 

- 메뉴 모델과 데이터

CMenu.cs
0.00MB
LINQ part4.pdf
0.27MB

'Windows App(Universal App) > Beginner' 카테고리의 다른 글

Install and update UWP apps from the Web  (0) 2020.04.25
LINQ - Join Operations - part5/5  (0) 2020.04.15
LINQ part 4  (0) 2020.02.11
LINQ part 3  (0) 2020.02.04
LINQ part2  (0) 2020.01.31
LINQ part1  (0) 2020.01.29
블로그 이미지

kaki104

This blog covers the latest technologies in Microsoft .Net. In 2020, I will be talking about Uno Platform frequently. http://youtube.com/FutureOfDotNet https://twitter.com/kaki104

댓글을 달아 주세요

Partitions
- Take
    numbers.Take(3)
- Skip
    numbers.Skip(4)
- TakeWhile
    numbers.TakeWhile(n => n < 6)
- SkipWhile
    numbers.SkipWhile(n => n % 3 != 0)


Orderings
- OrderBy
    orderby word
- Custom Comparer
    words.OrderBy(a => a, new CaseInsensitiveComparer())
- OrderBy ~ Descending
    orderby d descending
- ThenBy
    orderby degit.Length, digit
    words.OrderBy(a => a.Length).ThenBy(a => a, new CaseInsensitiveComparer())
- Reverse
    .Reverse()

https://youtu.be/K8V7_UDWfQs

LINQ part3.pdf
0.18MB

'Windows App(Universal App) > Beginner' 카테고리의 다른 글

LINQ - Join Operations - part5/5  (0) 2020.04.15
LINQ part 4  (0) 2020.02.11
LINQ part 3  (0) 2020.02.04
LINQ part2  (0) 2020.01.31
LINQ part1  (0) 2020.01.29
UnityContainer Detail & Examples - Prism으로 시작하는 UWP app part15  (0) 2020.01.12
블로그 이미지

kaki104

This blog covers the latest technologies in Microsoft .Net. In 2020, I will be talking about Uno Platform frequently. http://youtube.com/FutureOfDotNet https://twitter.com/kaki104

댓글을 달아 주세요

What is LINQ
- Language Integrated Query
- 다른 소스 및 Type에서 데이터를 검색하고 활용하기 위한 표현식
- 컬렉션, Ado.NET, DataSet, XML Docs, 웹 서비스 및 MS SQL Server 및 기타 데이터베이스등 다양한 데이터 소스에서 검색 및 활용이 가능
- 101 LINQ samples

LINQ Basic


LINQ Basic Keywords
- from : 쿼리 표현식은 from으로 시작해야함
- in : 4가지 경우에 사용되며 일반적으로 from과 함께 사용
- let : 쿼리식에서 하위절의 결과를 저장하여 후속절에서 사용하는 것이 유용한 경우에 let 키워드를 사용하여 새로운 로컬 변수를 만들어서 다양하게 활용이 가능
- into : group, join or select 절의 결과를 저장하는 임시 식별자를 만들수 있음
- on : join 절에서 결합 조건을 지정하는데 사용
- equals : join 절에서 두 시쿼스의 요소를 비교하는데 사용

Restrictions 제한
- Where


https://youtu.be/ci2U1cG6TvI

 

LINQ part1.pdf
0.22MB

블로그 이미지

kaki104

This blog covers the latest technologies in Microsoft .Net. In 2020, I will be talking about Uno Platform frequently. http://youtube.com/FutureOfDotNet https://twitter.com/kaki104

댓글을 달아 주세요