آموزش LINQ بخش ششم - عملگرهای پرس و جو قسمت اول
نویسنده: مهدی ملائیان
تاریخ: ۱۳۹۴/۱۲/۰۳ ۲۲:۱۵
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
where
Select,SelectMany
Take,Skip,TakeWhile,SkipWhile
OrderBy,OrderByDescending,ThenBy,ThenByDescending,Reverse
GroupBy
Concat,Union,Intersect,Except
ToArray,ToList,ToDictionary,ToLookup,OfType,Cast
First,FirstOrDefault,Last,LastOrDefalt,Single,SingleOrDefault
ElementAtOrDefault,DefaultIfEmpty
Empty,Range,Report
Any,All,Contains,SequenceEqual
Count,LongCount,Sum,Min,Max,Average,Aggregate
Join,GroupJoin,Zip
Ingredient[] ingredients =
{
new Ingredient{Name = "Sugar", Calories=500},
new Ingredient{Name = "Egg", Calories=100},
new Ingredient{Name = "Milk", Calories=150},
new Ingredient{Name = "Flour", Calories=50},
new Ingredient{Name = "Butter", Calories=200},
};
IEnumerable<Ingredient> query = ingredients.Where(x => x.Calories >= 200);
foreach (var ingredient in query)
{
Console.WriteLine(ingredient.Name);
} Sugar Butter
IEnumerable<Ingredient> query = ingredients.Where((ingredient, index) => ingredient.Name == "Sugar" || index == 4);
IEnumerable<Ingredient> gueryExpression = from i in ingredients where i.Calories >= 200 select i;
IEnumerable<string> query = ingredients.Select(x => x.Name);
IEnumerable<int> query = ingredients.Select(x => x.Name.Length);
class IngredientNameAndLength
{
public string Name { get; set; }
public int Length { get; set; }
public override string ToString()
{
return Name + " " + Length;
}
}
IEnumerable<IngredientNameAndLength> query = ingredients.Select(x =>
new IngredientNameAndLength
{
Name = x.Name,
Length = x.Name.Length
}); var query = ingredients.Select(x =>
new
{
Name = x.Name,
Length = x.Name.Length
}); { Name = Sugar, Length = 5 }
{ Name = Egg, Length = 3 }
{ Name = Milk, Length = 4 }
{ Name = Flour, Length = 5 }
{ Name = Butter, Length = 6 } var query = from i in ingredients
select new
{
Name=i.Name,
Length=i.Name.Length
}; string[] ingredients = {"Sugar","Egg","Milk","Flour","Butter"};
IEnumerable<char> query = ingredients.SelectMany(x => x.ToCharArray());
foreach (var item in query)
{
Console.WriteLine(item);
} S u g a r E g g M i l k F l o u r B u t t e r
string[] ingredients = {"Sugar","Egg","Milk","Flour","Butter"};
IEnumerable<char> query2 = from i in ingredients
from c in i.ToCharArray()
select c;
foreach (var item in query2)
{
Console.WriteLine(item);
} Ingredient[] ingredients =
{
new Ingredient{Name = "Sugar", Calories=500},
new Ingredient{Name = "Egg", Calories=100},
new Ingredient{Name = "Milk", Calories=150},
new Ingredient{Name = "Flour", Calories=50},
new Ingredient{Name = "Butter", Calories=200},
};
IEnumerable<Ingredient> query = ingredients.Take(3);
foreach (var ingredient in query)
{
Console.WriteLine(ingredient.Name);
} Sugar Egg Milk
Ingredient[] ingredients =
{
new Ingredient{Name = "Sugar", Calories=500},
new Ingredient{Name = "Egg", Calories=100},
new Ingredient{Name = "Milk", Calories=150},
new Ingredient{Name = "Flour", Calories=50},
new Ingredient{Name = "Butter", Calories=200},
};
IEnumerable<Ingredient> query = ingredients.Where(x=>x.Calories>100).Take(2);
foreach (var ingredient in query)
{
Console.WriteLine(ingredient.Name);
} Sugar Milk
IEnumerable<Ingredient> query = (from i in ingredients where i.Calories > 100 select i).Take(2); TakeWhile
Ingredient[] ingredients =
{
new Ingredient{Name = "Sugar", Calories=500},
new Ingredient{Name = "Egg", Calories=100},
new Ingredient{Name = "Milk", Calories=150},
new Ingredient{Name = "Flour", Calories=50},
new Ingredient{Name = "Butter", Calories=200},
};
IEnumerable<Ingredient> query = ingredients.TakeWhile(x => x.Calories >= 100);
foreach (var ingredient in query)
{
Console.WriteLine(ingredient.Name);
} Sugar Egg Milk
Ingredient[] ingredients =
{
new Ingredient{Name = "Sugar", Calories=500},
new Ingredient{Name = "Egg", Calories=100},
new Ingredient{Name = "Milk", Calories=150},
new Ingredient{Name = "Flour", Calories=50},
new Ingredient{Name = "Butter", Calories=200},
};
IEnumerable<Ingredient> query = ingredients.Skip(3);
foreach (var ingredient in query)
{
Console.WriteLine(ingredient.Name);
} Flour Butter
IEnumerable<Ingredient> firstPage = ingredients.Take(2);
IEnumerable<Ingredient> secondPage = ingredients.Skip(2).Take(2);
IEnumerable<Ingredient> thirdPage = ingredients.Skip(4).Take(2);
Console.WriteLine("First Page : ");
foreach (var ingredient in firstPage)
{
Console.WriteLine(" - " + ingredient.Name);
}
Console.WriteLine("Second Page : ");
foreach (var ingredient in secondPage)
{
Console.WriteLine(" - " + ingredient.Name);
}
Console.WriteLine("Third Page : ");
foreach (var ingredient in thirdPage)
{
Console.WriteLine(" - " + ingredient.Name);
} First Page : - Sugar - Egg Second Page : - Milk - Flour Third Page : - Butter SkipWhile
Ingredient[] ingredients =
{
new Ingredient{Name = "Sugar", Calories=500},
new Ingredient{Name = "Egg", Calories=100},
new Ingredient{Name = "Milk", Calories=150},
new Ingredient{Name = "Flour", Calories=50},
new Ingredient{Name = "Butter", Calories=200},
};
IEnumerable<Ingredient> query = ingredients.SkipWhile(x => x.Name != "Milk");
foreach (var ingredient in query)
{
Console.WriteLine(ingredient.Name);
} Milk Flour Butter