Recommended
PPTX
PPTX
C#を始めたばかりの人へのLINQ to Objects
PPTX
LINQ 概要 + 結構便利な LINQ to XML
PPTX
PDF
Guiding neural machine translation with retrieved translation pieces
PPTX
PDF
PPTX
PPTX
PDF
PDF
PDF
PPTX
PDF
PDF
An Internal of LINQ to Objects
PDF
PDF
PPTX
PPTX
Visual Studio による開発環境・プログラミングの進化
PPTX
PPTX
PDF
PPTX
PDF
PPTX
PDF
PDF
Let's LINQing! - C#におけるデータ処理 - by @masaru_b_cl #nds51
PDF
「LINQ」っていう名前だけでも 覚えて帰ってください!
More Related Content
PPTX
PPTX
C#を始めたばかりの人へのLINQ to Objects
PPTX
LINQ 概要 + 結構便利な LINQ to XML
PPTX
PDF
Guiding neural machine translation with retrieved translation pieces
PPTX
PDF
PPTX
Similar to C# linq
PPTX
PDF
PDF
PDF
PPTX
PDF
PDF
An Internal of LINQ to Objects
PDF
PDF
PPTX
PPTX
Visual Studio による開発環境・プログラミングの進化
PPTX
PPTX
PDF
PPTX
PDF
PPTX
PDF
PDF
Let's LINQing! - C#におけるデータ処理 - by @masaru_b_cl #nds51
PDF
「LINQ」っていう名前だけでも 覚えて帰ってください!
C# linq 1. 2. LINQ
• Language Integrated Queries (統合言
語クエリ)
• 配列、リスト、コレクションなどから
簡潔に値を求めたり、変換したり、
操ったりするための仕組み。
• .NET 3.5, C# 3.0, VB 2008に含まれている。
• 関数型言語によく使われる概念に基づ
いている。
3. 4. 5. 6. 匿名(ラムダ)関数
(a, b, c) => { var d = a + b; return d * c; }
関数本体が一行の場合、{}とreturn
と;を省略できる
(a, b, c) => { return (a + b) * c; }
(a, b, c) => (a + b) * c
引数が一つしかない場合、左側の
()も省略できる
(a) => a + 7 < 0
a => a + 7 < 0
7. 8. LINQ無しの場合
List<double> scores = new List<double>();
foreach (TestResult result in tests)
{
scores.Add(result.TotalCorrect /result.TotalQuestions);
}
IEnumerable<T>.Select(T => R) IEnumerable<R>
9. 10. 11. 12. LINQ無しの場合
class TestScore
{ public double Score { get; set; }
public string TestTaker { get; set; }
}
List<TestScore> scores = new List<TestScore>();
foreach (TestResult test in tests)
{
scores.Add(new TestScore
{
Score = test.TotalCorrect / test.TotalQuestions,
TestTaker = test.TestTaker
});
}
13. LINQの場合
var scores2 = tests.Select(t => new
{
Score = t.TotalCorrect / t.TotalQuestions,
TestTaker = t.TestTaker
});
14. 15. 16. 17. 18. LINQ無しの場合
List<TestScore> highTests = new List<TestScore>();
foreach (TestResult test in tests)
{
double score = test.TotalCorrect / test.TotalQuestions;
if(score >= 0.6)
{
highTests.Add(new TestScore
{
TestTaker = test.TestTaker, Score = score
});
}
}
19. LINQの場合
var highScores = sampleTests.Select(t => new
{
t.TestTaker,
Score = t.TotalCorrect / t.TotalQuestions
})
.Where(s => s.Score >= 0.6);
20. 21. LINQの場合
var highScores = sampleTests
.Select(t => new
{
t.TestTaker,
Score = t.TotalCorrect / t.TotalQuestions
})
.Where(s => s.Score >= 0.6)
.OrderBy(s => s.Score);
IEnumerable<T>.OrderBy(T => O) IEnumerable<T>
22. 23.