LINQ
逶ョ谺。
where蜿・
int[] array = { 3, -5, -1, 0, 2 };
foreach (int elm in array) Console.WriteLine(elm);
竊3, -5, -1, 0, 2
繧ッ繧ィ繝ェ螟画焚 = 繧ッ繧ィ繝ェ蠑
var pos =
縲from n in array
縲where n > 0
縲select n;
foreach (int elm in pos) Console.WriteLine(elm);
竊3, 2
int[] array = { 3, -5, -1, 0, 2 };
var pos = array.Where(n => n > 0).Select(n => n);
foreach (int elm in pos) Console.WriteLine(elm);
竊3, 2
orderby蜿・
var pos =
縲from n in array
縲where n > 0
縲orderby n
foreach (int elm in pos) Console.WriteLine(elm);
竊2, 3
orderby n ascending 窶サ繝繝輔か繝ォ繝
orderby n descending
var pos = array.Where(n => n > 0).OrderBy(n => n).Select(n => n);
foreach (int elm in pos) Console.WriteLine(elm);
竊2, 3
スOrderBy(n => n)
スOrderByDescending(n => n)
select蜿・
隕∫エ繧貞刈蟾・縺励※謖螳
var pos =
縲from n in array
縲select Math.Abs(n) 窶サabs:邨カ蟇セ蛟、
縲select n;
foreach (int elm in pos) Console.WriteLine(elm);
竊3, 5, 1, 0, 2
隕∫エ繧貞刈蟾・縺励※謖螳
var pos = array.Select(n => Math.Abs(n)).OrderBy(n => n);
foreach (int elm in pos) Console.WriteLine(elm);
竊0, 1, 2, 3, 5
繧ッ繝ゥ繧ケ隕∫エ繧呈欠螳
{
縲public int myInt { get; private set; }
縲public MyClass(int prm)
縲{
縲縲this.myInt = prm;
縲}
}
static void Main(string[] args)
{
縲MyClass[] myClass = {
縲縲new MyClass(5),
縲縲new MyClass(10),
縲縲new MyClass(15)
縲};
縲
縲var myInt =
縲縲from n in myClass
縲縲select n.myInt;
縲
縲foreach (var elm in myInt) Console.WriteLine(elm);
縲竊5, 10, 15
}
{
縲public int myInt { get; private set; }
縲public MyClass(int prm)
縲{
縲縲this.myInt = prm;
縲}
}
static void Main(string[] args)
{
縲MyClass[] myClass = {
縲縲new MyClass(5),
縲縲new MyClass(10),
縲縲new MyClass(15)
縲};
縲
縲var pos = myClass.Select(n => n.myInt);
縲
縲foreach (var elm in myInt) Console.WriteLine(elm);
縲竊5, 10, 15
}
蛻・繧ッ繝ゥ繧ケ縺ョ繧、繝ウ繧ケ繧ソ繝ウ繧ケ繧呈欠螳
{
縲public int herInt { get; private set; }
縲public HerClass(int prm)
縲{
縲縲this.herInt = prm*2;
縲}
}
static void Main(string[] args)
{
縲MyClass[] myClass = {
縲縲new MyClass(5),
縲縲new MyClass(10),
縲縲new MyClass(15)
縲};
var myInt =
縲from n in myClass
縲select new HerClass(n.myInt);
foreach (var elm in myInt) Console.WriteLine(elm.herInt);
竊10, 20, 30
}
{
縲public int herInt { get; private set; }
縲public HerClass(int prm)
縲{
縲縲this.herInt = prm*2;
縲}
}
static void Main(string[] args)
{
縲MyClass[] myClass = {
縲縲new MyClass(5),
縲縲new MyClass(10),
縲縲new MyClass(15)
縲};
var pos = myClass.Select(n => new HerClass(n.myInt));
foreach (var elm in myInt) Console.WriteLine(elm.herInt);
竊10, 20, 30
}
group蜿・
var place =
縲from n in array
縲group n by n.Substring(2);
縲3譁蟄礼岼縺ァ蛻鬘
foreach (var elm in place)
{
縲// 隕ェ隕∫エ.Key
縲Console.WriteLine(elm.Key);
縲// 蟄占ヲ∫エ
縲foreach (var e in elm)
縲{
縲縲Console.WriteLine(e);
縲}
}
竊
逵 隕ェ隕∫エ.Key
蜈オ蠎ォ逵
螂郁憶逵
貊玖ウ逵
蟶 隕ェ隕∫エ.Key
隘ソ螳ョ蟶
蟆シ蟠主ク
闃ヲ螻句ク
逾樊虻蟶
螟ァ豢・蟶
蠖ヲ譬ケ蟶
var pos = array.GroupBy(n => n.Substring(2));
縲3譁蟄礼岼縺ァ蛻鬘
foreach (var parent in pos)
縲foreach (var child in parent )
縲縲Console.WriteLine(child);
竊
蜈オ蠎ォ逵
螂郁憶逵
貊玖ウ逵
隘ソ螳ョ蟶
蟆シ蟠主ク
闃ヲ螻句ク
逾樊虻蟶
螟ァ豢・蟶
蠖ヲ譬ケ蟶
join蜿・
select蜿・縺ォfrom蜿・縺ョ隕∫エ繧呈欠螳
{
縲public int ItemId { get; private set; }
縲public string ItemNm { get; private set; }
縲
縲public Item(int prmId, string prmNm)
縲{
縲縲this.ItemId = prmId;
縲縲this.ItemNm = prmNm;
縲}
}
class StockInfo
{
縲public int ItemId { get; private set; }
縲public bool InStock { get; private set; }
縲
縲public StockInfo(int prmId, bool prmInStock)
縲{
縲縲this.ItemId = prmId;
縲縲this.InStock = prmInStock;
縲}
}
static void Main(string[] args)
{
縲Item[] items = {
縲縲new Item(prmId: 1, prmNm: @”C#”),
縲縲new Item(prmId: 2, prmNm: @”JavaScript”),
縲縲new Item(prmId: 3, prmNm: @”C++”)
縲};
縲
縲StockInfo[] stockInfo = {
縲縲new StockInfo(prmId: 1, prmInStock: true),
縲縲new StockInfo(prmId: 2, prmInStock: false),
縲縲new StockInfo(prmId: 3, prmInStock: true)
縲};
縲
縲var list =
縲縲from item in items
縲縲join info in stockInfo
縲縲縲on item.ItemId equals info.ItemId
縲縲where info.InStock == true
縲縲select item.ItemNm;
縲
縲foreach (var elm in list) Console.WriteLine(elm);
}
竊
C#
C++
select蜿・縺ォ蛻・繧ッ繝ゥ繧ケ縺ョ繧、繝ウ繧ケ繧ソ繝ウ繧ケ繧呈欠螳
{
縲public string ItemNm { get; private set; }
縲public bool InStock { get; private set; }
縲public ItemList(string prmNm, bool prmInStock)
縲{
縲縲this.ItemNm = prmNm;
縲縲this.InStock = prmInStock;
縲}縲
}
static void Main(string[] args)
{
縲var list =
縲縲from item in items
縲縲join info in stockInfo
縲縲縲on item.ItemId equals info.ItemId
縲縲select new ItemList(prmNm:item.ItemNm, prmInStock: info.InStock);
縲foreach (var elm in list)
縲{
縲縲Console.WriteLine(elm.ItemNm + “:” + elm.InStock);
縲}
}
竊
C#:True
JavaScript:False
C++:True
{
縲public string ItemNm { get; private set; }
縲public bool InStock { get; private set; }
縲public ItemList(string prmNm, bool prmInStock)
縲{
縲縲this.ItemNm = prmNm;
縲縲this.InStock = prmInStock;
縲}縲
}
static void Main(string[] args)
{
縲var list = items.Join(
縲縲stockInfo,
縲縲n => n.ItemId,
縲縲m => m.ItemId,
縲縲(n, m) => new ItemList(prmNm: n.ItemNm, prmInStock:m.InStock));
縲
縲foreach (var elm in list) Console.WriteLine(elm.ItemNm + ":" + elm.InStock);
}
竊
C#:True
JavaScript:False
C++:True
select蜿・縺ォ蛹ソ蜷阪け繝ゥ繧ケ縺ョ繧、繝ウ繧ケ繧ソ繝ウ繧ケ繧呈欠螳
{
縲var list =
縲縲from item in items
縲縲join info in stockInfo
縲縲縲on item.ItemId equals info.ItemId
縲縲select new { ItemNm = item.ItemNm, InStock = info.InStock };
縲foreach (var elm in list)
縲{
縲縲Console.WriteLine(elm.ItemNm + “:” + elm.InStock);
縲}
}
竊
C#:True
JavaScript:False
C++:True
{
縲var list = items.Join(
縲縲stockInfo,
縲縲n => n.ItemId,
縲縲m => m.ItemId,
縲縲(n, m) => new { ItemNm = n.ItemNm, InStock = m.InStock });
縲
縲foreach (var elm in list) Console.WriteLine(elm.ItemNm + ":" + elm.InStock);
}
竊
C#:True
JavaScript:False
C++:True
繧ッ繧ィ繝ェ縺ョ螳溯。後ち繧、繝溘Φ繧ー
int[] array = { 3, -5, -1, 0, 2 };
var pos =
縲from n in array
縲where n > 0
縲select n;
縺薙ョ譎らせ縺ァ縺ッ繧ッ繧ィ繝ェ縺ッ螳溯。後&繧後※縺翫i縺壹√け繧ィ繝ェ螟画焚縺ォ蛟、縺ッ譬シ邏阪&繧後※縺縺ェ縺
foreach (int elm in pos) Console.WriteLine(elm);
竊3, 2
array[1] *= -1;
array[2] *= -1;
繝繝シ繧ソ繧ス繝シ繧ケ繧貞、画峩
foreach (int elm in pos) Console.WriteLine(elm);
竊3, 5, 1, 2
繝繝シ繧ソ繧ス繝シ繧ケシ壹け繧ィ繝ェ蠑上′螟牙喧縺吶k縺ィ繧ッ繧ィ繝ェ螟画焚繧ょ、牙喧縺励※縺繧九
intoシ壹け繧ィ繝ェ縺ョ謗・邯
縲from n in array
縲group n by n.Substring(2)
縲into m
縲where m.Count() <= 3
縲隕∫エ謨ー縺3莉・荳九ョ繧ー繝ォ繝シ繝励↓邨槭k
縲select m;
foreach (var elm in place)
{
縲foreach (var e in elm) Console.WriteLine(e);
}
竊
蜈オ蠎ォ逵
螂郁憶逵
貊玖ウ逵
letシ壹け繧ィ繝ェ螟画焚
var strs =
縲from n in strArray
縲select n;
foreach (var elm in strs) Console.WriteLine(elm);
竊
隘ソ螳ョ
蟆シ蟠
闃ヲ螻
var chrs =
縲from n in strArray
縲let chrArray = n.ToCharArray()
縲譁蟄怜怜梛隕∫エ竊団har蝙矩榊 縺ク螟画鋤縺励√け繧ィ繝ェ螟画焚縺ォ譬シ邏
縲縲from m in chrArray
縲縲select m;
foreach (var elm in chrs) Console.WriteLine(elm);
竊
隘ソ
螳ョ
蟆シ
蟠
闃ヲ
螻
萓(2)
string[] strArray = { "蜈オ蠎ォ逵", "隘ソ螳ョ蟶", "蟆シ蟠主ク", "螂郁憶逵", "闃ヲ螻句ク", "逾樊虻蟶", "貊玖ウ逵", "螟ァ豢・蟶", "蠖ヲ譬ケ蟶" };
var strs =
縲from n in strArray
縲let place = n.Substring(2)
縲where place.Equals("逵")
縲select n
縲縲into m
縲縲select m;
foreach (var elm in strs) Console.WriteLine(elm);
竊
蜈オ蠎ォ逵
螂郁憶逵
貊玖ウ逵