블로그 이미지
This blog covers the latest technologies in Microsoft .Net. In 2020, I will be talking about Uno Platform frequently. http://youtube.com/FutureOfDotNet kaki104

카테고리

List All (621)
Uno Platform (5)
Visual Studio (7)
Blazor (2)
Windows App(Universa.. (110)
Xamarin Forms (4)
Bot Framework (19)
Azure (10)
Windows 10 (53)
WPF (7)
Facebook News & Tips (158)
Windows 8&8.1 (113)
Windows Phone 8 (42)
Silverlight (37)
HTML5 & MVC4 (16)
Portable Class Library (2)
Uncategorised Tips a.. (3)
Kinect for Windows (2)
ETC (12)
kaki104 Scrap (4)
App News (13)
Total565,951
Today8
Yesterday106

'LINQ'에 해당되는 글 4건

  1. 2020.04.15 LINQ - Join Operations - part5/5
  2. 2020.02.11 LINQ part 4
  3. 2020.02.04 LINQ part 3
  4. 2020.01.29 LINQ part1

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
Posted by 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
Posted by 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
Posted by 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

Posted by kaki104

댓글을 달아 주세요