[wiki.linqbridge] push by azizatif - Imported wiki pages from svn repo @ r247 on 2011-04-30 13:23 GMT

0 views
Skip to first unread message

linqb...@googlecode.com

unread,
Apr 30, 2011, 9:24:15 AM4/30/11
to linqbridg...@googlegroups.com
Revision: 0204e4072aff
Author: azizatif
Date: Sat Apr 30 06:23:33 2011
Log: Imported wiki pages from svn repo @ r247
http://code.google.com/p/linqbridge/source/detail?repo=wiki&r=0204e4072aff

Added:
/ColoredUnitTestReport.wiki
/JonSkeetEduLinqBlogSeries.wiki
/OperatorsImplementationStatus.wiki
/ProjectDescription.wiki
/SampleLinq1.wiki
/SampleLinq10.wiki
/SampleLinq100.wiki
/SampleLinq101.wiki
/SampleLinq102.wiki
/SampleLinq103.wiki
/SampleLinq104.wiki
/SampleLinq105.wiki
/SampleLinq106.wiki
/SampleLinq11.wiki
/SampleLinq12.wiki
/SampleLinq13.wiki
/SampleLinq14.wiki
/SampleLinq15.wiki
/SampleLinq16.wiki
/SampleLinq17.wiki
/SampleLinq18.wiki
/SampleLinq19.wiki
/SampleLinq2.wiki
/SampleLinq20.wiki
/SampleLinq21.wiki
/SampleLinq22.wiki
/SampleLinq23.wiki
/SampleLinq24.wiki
/SampleLinq25.wiki
/SampleLinq26.wiki
/SampleLinq27.wiki
/SampleLinq28.wiki
/SampleLinq29.wiki
/SampleLinq3.wiki
/SampleLinq30.wiki
/SampleLinq31.wiki
/SampleLinq32.wiki
/SampleLinq33.wiki
/SampleLinq34.wiki
/SampleLinq35.wiki
/SampleLinq36.wiki
/SampleLinq37.wiki
/SampleLinq38.wiki
/SampleLinq39.wiki
/SampleLinq4.wiki
/SampleLinq40.wiki
/SampleLinq41.wiki
/SampleLinq42.wiki
/SampleLinq43.wiki
/SampleLinq44.wiki
/SampleLinq45.wiki
/SampleLinq46.wiki
/SampleLinq47.wiki
/SampleLinq48.wiki
/SampleLinq49.wiki
/SampleLinq5.wiki
/SampleLinq50.wiki
/SampleLinq51.wiki
/SampleLinq52.wiki
/SampleLinq53.wiki
/SampleLinq54.wiki
/SampleLinq55.wiki
/SampleLinq56.wiki
/SampleLinq57.wiki
/SampleLinq58.wiki
/SampleLinq59.wiki
/SampleLinq6.wiki
/SampleLinq61.wiki
/SampleLinq62.wiki
/SampleLinq64.wiki
/SampleLinq65.wiki
/SampleLinq66.wiki
/SampleLinq67.wiki
/SampleLinq69.wiki
/SampleLinq7.wiki
/SampleLinq70.wiki
/SampleLinq72.wiki
/SampleLinq73.wiki
/SampleLinq74.wiki
/SampleLinq76.wiki
/SampleLinq77.wiki
/SampleLinq78.wiki
/SampleLinq79.wiki
/SampleLinq8.wiki
/SampleLinq80.wiki
/SampleLinq81.wiki
/SampleLinq82.wiki
/SampleLinq83.wiki
/SampleLinq84.wiki
/SampleLinq85.wiki
/SampleLinq86.wiki
/SampleLinq87.wiki
/SampleLinq88.wiki
/SampleLinq89.wiki
/SampleLinq9.wiki
/SampleLinq90.wiki
/SampleLinq91.wiki
/SampleLinq92.wiki
/SampleLinq93.wiki
/SampleLinq94.wiki
/SampleLinq95.wiki
/SampleLinq96.wiki
/SampleLinq97.wiki
/SampleLinq99.wiki
/SamplesIndex.wiki
/SamplesTree.wiki
/UnitTestReport.wiki
/multi-targeting.png

=======================================
--- /dev/null
+++ /ColoredUnitTestReport.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,214 @@
+#summary Unit test (colored) report for BackLINQ, MS LINQ, Mono and others
+
+= Summary =
+
+|| *Project* || *Tests Failed* ||
+|| LINQBridge || None ||
+|| Microsoft LINQ || None ||
+|| [http://www.mono-project.com/ Mono] 2.2 LINQ || 16 of 199 ||
+|| [http://www.codeplex.com/LINQSQO LINQ-SQO] || 70 of 199 ||
+
+See also: [http://linqbridge.googlecode.com/svn/www/ccreport.html Code
Coverage Report]
+
+= Comparison =
+
+|| *LINQBridge* || *Microsoft* || *LINQ-SQO* || *Mono* || Method under
test
|| Test condition ||
Expected result ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.aggregate.aspx
Aggregate]
|| Add func on integers ||
Returns total ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.aggregate.aspx
Aggregate]
|| Add func on integers with seed ||
Returns total ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.aggregate.aspx
Aggregate]
|| Empty source ||
Throws InvalidOperationException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.aggregate.aspx
Aggregate]
|| Null func ||
Throws ArgumentNullException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.aggregate.aspx
Aggregate]
|| Null source ||
Throws ArgumentNullException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.all.aspx
All]
|| Null source ||
Throws ArgumentNullException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.all.aspx
All]
|| Some source elements not satifying predicate ||
Returns false ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.all.aspx
All]
|| Source elements satisfying predicate ||
Returns true ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.any.aspx
Any]
|| Empty source ||
Returns false ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.any.aspx
Any]
|| Non empty source ||
Returns true ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.any.aspx
Any]
|| Null source ||
Throws ArgumentNullException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.any.aspx
Any](Predicate)
|| Empty source ||
Returns false ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.any.aspx
Any](Predicate)
|| Non empty source ||
Returns true ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.asenumerable.aspx
AsEnumerable]
|| Non null source ||
Returns source reference ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.asenumerable.aspx
AsEnumerable]
|| Null source ||
Returns null ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.average.aspx
Average]
|| Array of doubles ||
Returns average ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.average.aspx
Average]
|| Array of floats ||
Returns average ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.average.aspx
Average]
|| Array of nullable floats ||
Returns average ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.average.aspx
Average]
|| Decimals ||
Returns toleratable average ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.average.aspx
Average]
|| Empty array of nullable integers ||
Returns null ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.average.aspx
Average]
|| Empty source ||
Throws InvalidOperationException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.average.aspx
Average]
|| Longs ||
Returns average ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.average.aspx
Average]
|| Nullable decimals ||
Returns average ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.average.aspx
Average]
|| Nullable doubles ||
Returns average ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.average.aspx
Average]
|| Nullable ints ||
Returns average ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.average.aspx
Average]
|| Nullable longs ||
Returns average ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.average.aspx
Average](Selector)
|| Array of persons ||
Average age ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.cast.aspx
Cast]
|| Integers ||
Yields upcasted objects ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.cast.aspx
Cast]
|| Invalid source ||
Throws InvalidCastException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.cast.aspx
Cast]
|| Null source ||
Throws ArgumentNullException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.cast.aspx
Cast]
|| Object source containing integers ||
Yields downcasted integers ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.concat.aspx
Concat]
|| First source null ||
Throws ArgumentNullException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.concat.aspx
Concat]
|| Second source null ||
Throws ArgumentNullException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.concat.aspx
Concat]
|| Two lists ||
Correct order ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.contains.aspx
Contains]
|| Ints containing passed value ||
Returns true ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.contains.aspx
Contains]
|| Ints that do not contain passed value ||
Returns false ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.contains.aspx
Contains]
|| List of ints containing passed value ||
Returns true ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.count.aspx
Count]
|| Ints ||
Returns number of elements ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.count.aspx
Count](Predicate)
|| Strings ||
Counts only strings with even length ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.defaultifempty.aspx
DefaultIfEmpty](DefaultValue) |
| Integers ||
Yields integers in order ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.defaultifempty.aspx
DefaultIfEmpty] |
| Empty integers source ||
Returns zero ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.defaultifempty.aspx
DefaultIfEmpty] |
| Empty integers source with non zero default ||
Return non zero default ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.defaultifempty.aspx
DefaultIfEmpty] |
| Inegers ||
Yields integers in order ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.distinct.aspx
Distinct]
|| Integers with some duplicates ||
Yields integers in source order without duplicates ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.distinct.aspx
Distinct]
|| Mixed source strings with case ignoring comparer ||
Yields first case of each distinct string in source order ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.distinct.aspx
Distinct]
|| Null source ||
Throws ArgumentNullException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.elementat.aspx
ElementAt]
|| Index out of range ||
Throws ArgumentOutOfRangeException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.elementat.aspx
ElementAt]
|| Integers ||
Returns correct values ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.elementat.aspx
ElementAt]
|| Negative index ||
Throws ArgumentOutOfRangeException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.elementatordefault.aspx
ElementAtOrDefault] ||
Int array || Returns
correct value ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.elementatordefault.aspx
ElementAtOrDefault] ||
Integers || Returns
zero if index out of range ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.elementatordefault.aspx
ElementAtOrDefault] ||
List of ints || Returns
correct element ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.elementatordefault.aspx
ElementAtOrDefault] ||
Negative index || Returns
default ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.elementatordefault.aspx
ElementAtOrDefault] ||
Object array || Returns
correct value ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.elementatordefault.aspx
ElementAtOrDefault] ||
Object array || Returns
null if index out of range ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.empty.aspx
Empty]
|| ||
Yields empty source ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.except.aspx
Except](second)
|| Argument null ||
Throws ArgumentNullException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.except.aspx
Except](Second)
|| Valid argument ||
Returns correct enumerable ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.except.aspx
Except]
|| Second arg comparer arg ||
Comparer is used ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.first.aspx
First]
|| Empty source ||
Throws InvalidOperationException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.first.aspx
First]
|| Integers ||
Returns first ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.first.aspx
First]
|| Integers with evens predicate ||
First even integer ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.first.aspx
First]
|| Integers with non matching predicate ||
Throws InvalidOperationException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.firstordefault.aspx
FirstOrDefault] |
| Empty boolean source ||
Returns false ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.firstordefault.aspx
FirstOrDefault] |
| Objects ||
Returns first reference ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.firstordefault.aspx
FirstOrDefault](Predicate) |
| No matches in array ||
Returns default value of type ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.firstordefault.aspx
FirstOrDefault](Predicate) |
| Null as predicate ||
Throws ArgumentNullException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.firstordefault.aspx
FirstOrDefault](Predicate) |
| Valid predicate ||
Returns first matching item ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.groupby.aspx
GroupBy](KeySelector)
|| Null as key selector ||
Throws ArgumentNullException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.groupby.aspx
GroupBy](KeySelector)
|| Valid arguments ||
Correct case sensitive grouping ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.groupby.aspx
GroupBy](KeySelector)
|| Valid arguments ||
Correct grouping ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.groupby.aspx
GroupBy](KeySelector,
Comparer) || Keys that
differ in casing non case sensitive string comparer || Correct
grouping ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.groupby.aspx
GroupBy](KeySelector,
ElementSelector) || Valid
arguments || Correct
grouping and projection ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.groupby.aspx
GroupBy](KeySelector, ElementSelector,
ResultSelector) || Valid
arguments || Correct
grouping and transforming ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.groupby.aspx
GroupBy](KeySelector, ElementSelector, ResultSelector,
Comparer) || Valid
arguments || Correct
grouping and transforming ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.groupby.aspx
GroupBy](KeySelector,
ResultSelector) || Valid
arguments || Correct
grouping processing ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.groupby.aspx
GroupBy](KeySelector, ResultSelector,
Comparer) || Valid
arguments || Correct
grouping and transforming ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.groupbykey.aspx
GroupByKey](KeySelector, ElementSelector,
Comparer) || Valid
arguments || Correct
grouping and processing ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.groupjoin.aspx
GroupJoin](Inner, OuterKeySelector, InnerKeySelector,
ResultSelector) || Pass null as outer key
selector || Throws
ArgumentNullException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.groupjoin.aspx
GroupJoin](Inner, OuterKeySelector, InnerKeySelector,
ResultSelector) || Valid
arguments || Correct
grouping and joining ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.groupjoin.aspx
GroupJoin](Inner, OuterKeySelector, InnerKeySelector, ResultSelector,
Comparer) || Valid
arguments || Correct
grouping and joining ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.intersect.aspx
Intersect]
|| Integer sources ||
Yields common set ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.intersect.aspx
Intersect]
|| Null second source ||
Throws ArgumentNullException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.intersect.aspx
Intersect]
|| String sources with mixed casing and case insensitive comparer ||
Yields common set from first source ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.join.aspx
Join](Inner, OuterKeySelector, InnerKeySelector,
ResultSelector) || Passing pets and
owners || Pets are correctly
assigned to owners ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.join.aspx
Join](Inner, OuterKeySelector, InnerKeySelector,
ResultSelector) || Pass null as
argument || Throws
ArgumentNullException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.join.aspx
Join](Inner, OuterKeySelector, InnerKeySelector, ResultSelector,
Comparer) || Pet owners names casing is
inconsistent || Case insensitive join is
performed ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| *<font color="red">FAIL</font>* ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.last.aspx
Last]
|| Empty integer list optimization ||
Throws InvalidOperationException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| *<font color="red">FAIL</font>* ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.last.aspx
Last]
|| Integer list optimization ||
Returns last element without enumerating ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.last.aspx
Last]
|| Integers ||
Returns last element ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.last.aspx
Last](Predicate)
|| List of ints ||
Returns last matching element ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.last.aspx
Last](Predicate)
|| No matching element ||
Throws InvalidOperationException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.last.aspx
Last](Predicate)
|| Null as predicate ||
Throws ArgumentNullException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.lastordefault.aspx
LastOrDefault]
|| Empty source ||
Returns zero ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.lastordefault.aspx
LastOrDefault]
|| Non empty list ||
Returns last element ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.lastordefault.aspx
LastOrDefault](Predicate)
|| No matching element ||
Returns zero ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.lastordefault.aspx
LastOrDefault](Predicate)
|| Valid arguments ||
Retuns last matching element ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.longcount.aspx
LongCount](Predicate)
|| Null as predicate ||
Throws ArgumentNullException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.longcount.aspx
LongCount](Predicate)
|| Valid arguments ||
Returns correct numer of matching elements ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.longcount.aspx
LongCount]
|| Valid argument ||
Returns correct number of elements ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.max.aspx
Max]
|| Empty list ||
Throws InvalidOperationException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.max.aspx
Max]
|| Empty nullable integer array ||
Returns null ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.max.aspx
Max]
|| Integers ||
Returns max value ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.max.aspx
Max]
|| List with nullable type ||
Returns maximum ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.max.aspx
Max]
|| Nullable decimals ||
Returns max value ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.max.aspx
Max]
|| Nullable doubles ||
Returns max value ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.max.aspx
Max]
|| Nullable floats ||
Returns max value ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.max.aspx
Max]
|| Nullable integer array with nulls only ||
Returns null ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.max.aspx
Max]
|| Nullable list ||
Returns max non null value ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.max.aspx
Max]
|| Nullable longs ||
Returns max value ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.max.aspx
Max](Selector)
|| List of objects ||
Returns max selected value ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.min.aspx
Min]
|| Empty list ||
Throws InvalidOperationException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.min.aspx
Min]
|| Integers with some null ||
Returns minimum non null value ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.min.aspx
Min]
|| Nullable decimals ||
Returns minimum non null value ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.min.aspx
Min]
|| Nullable doubles ||
Returns minimum non null value ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.min.aspx
Min]
|| Nullable floats ||
Returns minimum non null value ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.min.aspx
Min]
|| Nullable longs ||
Returns minimum non null value ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.min.aspx
Min]
|| Strings with length selector ||
Returns minimum non null string length ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.oftype.aspx
OfType]
|| Enumerable with elements of different types || Only
decimals are returned ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.orderby.aspx
OrderBy](KeySelector)
|| Array of persons ||
Persons are ordered by age ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>* ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.orderby.aspx
OrderBy](KeySelector)
|| Data with duplicate keys ||
Yields stably sorted data ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.orderby.aspx
OrderBy](KeySelector)
|| Null as key selector ||
Throws ArgumentNullException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.orderby.aspx
OrderBy](KeySelector,
Comparer) || Array of
persons and reversecomparer || Persons are
ordered by age using reversecomparer ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.orderbydescending.aspx
OrderByDescending](KeySelector) ||
Array of persons || Persons
are ordered by age descending ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.range.aspx
Range]
|| Negative count ||
Throws ArgumentOutOfRangeException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.range.aspx
Range]
|| Produce range that leads to overflow ||
Throws ArgumentOutOfRangeException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.range.aspx
Range]
|| Start10 count5 || Ints
from10 to14 ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.repeat.aspx
Repeat]
|| Pass negative count ||
Throws ArgumentOutOfRangeException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.repeat.aspx
Repeat]
|| String argument count2 ||
Return value contains string argument twice ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.reverse.aspx
Reverse]
|| Series of ints || Ints
are correctly reversed ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.select.aspx
Select]
|| Array of persons || Age
of persons is selected according to passed lambda expression ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.select.aspx
Select](Selector)
|| Lambda that takes index as argument ||
Return value contains elements multiplied by index ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>* ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.selectmany.aspx
SelectMany](CollectionSelector,
ResultSelector) || Array of pet
owner || Result contains
element for each pet a pet owner has ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.selectmany.aspx
SelectMany](Selector3)
|| Array of pet owners ||
Selector uses element index argument ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.selectmany.aspx
SelectMany](Selector)
|| Array of persons ||
Returns a sequence with all letters of firstnames ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| *<font color="red">FAIL</font>* ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.sequenceequal.aspx
SequenceEqual]
|| Different sequences ||
Returns true ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| *<font color="red">FAIL</font>* ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.sequenceequal.aspx
SequenceEqual]
|| Equal sequences ||
Returns true ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| *<font color="red">FAIL</font>* ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.sequenceequal.aspx
SequenceEqual]
|| Floats with tolerant comparer ||
Comparer is used ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>* ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.sequenceequal.aspx
SequenceEqual]
|| Longer second sequence ||
Returns false ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.sequenceequal.aspx
SequenceEqual]
|| Null first sequence ||
Throws ArgumentNullException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.sequenceequal.aspx
SequenceEqual]
|| Null second sequence ||
Throws ArgumentNullException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>* ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.sequenceequal.aspx
SequenceEqual]
|| Shorter second sequence ||
Returns false ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.single.aspx
Single]
|| Empty source ||
Throws InvalidOperationException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.single.aspx
Single](Predicate)
|| Array of int with only one element satisfying condition ||
Returns only this element ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.single.aspx
Single](Predicate)
|| More than one element satisfied condition ||
Throws InvalidOperationException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.single.aspx
Single](Predicate)
|| No element satisfies condition ||
Throws InvalidOperationException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.single.aspx
Single](Predicate)
|| Pass null as predicate ||
Throws ArgumentNullException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.single.aspx
Single](Predicate)
|| Source is empty ||
Throws InvalidOperationException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.single.aspx
Single]
|| Source with more than one element ||
Throws InvalidOperationException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.single.aspx
Single]
|| Source with one element ||
Returns single element ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.singleordefault.aspx
SingleOrDefault] |
| Empty source ||
Returns zero ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.singleordefault.aspx
SingleOrDefault] |
| More than one element in source ||
Throws InvalidOperationException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.singleordefault.aspx
SingleOrDefault](Predicate) |
| Empty source ||
Returns zero ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.singleordefault.aspx
SingleOrDefault](Predicate) |
| More than one element satisfies condition ||
Throws InvalidOperationException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.singleordefault.aspx
SingleOrDefault](Predicate) |
| No element satisfies condition ||
Returns zero ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.singleordefault.aspx
SingleOrDefault](Predicate) |
| One element satisfies condition ||
Returns correct element ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.singleordefault.aspx
SingleOrDefault](Predicate) |
| Pass null as predicate ||
Throws ArgumentNullException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.singleordefault.aspx
SingleOrDefault] |
| Source with one element ||
Returns single element ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.skip.aspx
Skip]
|| Ints from one to ten and fife as second arg || Ints
from six to ten ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.skip.aspx
Skip]
|| Pass negative value as count || Same
behavior as microsoft implementation ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.skipwhile.aspx
SkipWhile](Predicate3)
|| Ints from one to nine ||
Elements are skipped while index less than five ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.skipwhile.aspx
SkipWhile](Predicate)
|| Array of ints with elements not satisfying condition at the end || Ints
at the end are part of result ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.skipwhile.aspx
SkipWhile](Predicate)
|| Ints from one to five ||
Elements are skipped as long as condition is satisfied ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.skipwhile.aspx
SkipWhile](Predicate)
|| Pass null as predicate ||
Throws ArgumentNullException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.skipwhile.aspx
SkipWhile](Predicate)
|| Predicate always true ||
Empty result ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.sum.aspx
Sum]
|| Decimals ||
Returns sum ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.sum.aspx
Sum]
|| Doubles ||
Returns sum ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.sum.aspx
Sum]
|| Floats ||
Returns sum ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.sum.aspx
Sum]
|| Ints from one to ten ||
Result is fifty five ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.sum.aspx
Sum]
|| Longs ||
Returns sum ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>* ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.sum.aspx
Sum]
|| Nullable decimals ||
Returns sum ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>* ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.sum.aspx
Sum]
|| Nullable doubles ||
Returns sum ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>* ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.sum.aspx
Sum]
|| Nullable floats ||
Returns sum ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>* ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.sum.aspx
Sum]
|| Nullable ints as arguments ||
Returns correct sum ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>* ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.sum.aspx
Sum]
|| Nullable longs ||
Returns sum ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.sum.aspx
Sum](Selector)
|| String array ||
Result is sum of string lengthes ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>* ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.sum.aspx
Sum]
|| Sum of arguments causes overflow ||
Throws OverflowException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.take.aspx
Take]
|| Count bigger than list ||
Returns all elements ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.take.aspx
Take]
|| Ints from one to six and three as count || Ints
from one to three are returned ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.takewhile.aspx
TakeWhile]
|| Ints from one to ten and condition that square is smaller than50 || Ints
from one to seven ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.takewhile.aspx
TakeWhile]
|| Pass null as predicate ||
Throws ArgumentNullException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>* ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.thenby.aspx
ThenBy](KeySelector)
|| Data with duplicate keys ||
Yields stably sorted data ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.thenby.aspx
ThenBy]
|| Null key selector ||
Throws ArgumentNullException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.thenby.aspx
ThenBy]
|| Null source ||
Throws ArgumentNullException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.thenbydescending.aspx
ThenByDescending](KeySelector, Comparer) ||
String array || Correct
ordering ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.toarray.aspx
ToArray]
|| Ints from one to ten ||
Result is int array containing all elements ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.todictionary.aspx
ToDictionary](KeySelector)
|| Duplicate keys ||
Throws ArgumentException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.todictionary.aspx
ToDictionary](KeySelector)
|| Key selector yields null ||
Throws ArgumentNullException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.todictionary.aspx
ToDictionary](KeySelector)
|| Valid arguments || Key
selector is used for keys in dictionary ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.todictionary.aspx
ToDictionary](KeySelector,
ElementSelector) || Ints from one to
ten || Key selector and element
selector are used for dictionary elements ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.tolist.aspx
ToList]
|| Ints from one to ten ||
Returns list of ints containing all elements ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.tolookup.aspx
ToLookup](KeySelector)
|| Strings ||
Returns lookup array with string length as key ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.tolookup.aspx
ToLookup](KeySelector,
ElementSelector) ||
Strings || Element
selector is used ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.union.aspx
Union](Second)
|| Pass null as argument ||
Throws ArgumentNullException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.union.aspx
Union](Second)
|| Valid int arguments || No
duplicates and in source order ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.union.aspx
Union](Second,
Comparer) ||
Upper case and lower case strings || Passed
comparer is used ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.where.aspx
Where]
|| Integers with evens predicate ||
Yields even integers ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || *<font color="red">FAIL</font>*
|| <font color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.where.aspx
Where]
|| Null predicate ||
Throws ArgumentNullException ||
+|| <font color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> || <font
color="darkgreen">PASS</font> ||
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.where.aspx
Where]
|| Strings with even index predicate ||
Yields elements with even index ||
=======================================
--- /dev/null
+++ /JonSkeetEduLinqBlogSeries.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,25 @@
+#summary Educational blog series by Jon Skeet on re-implementing LINQ to
Objects
+
+[http://msmvps.com/blogs/jon_skeet/ Jon Skeet] has done a
[http://msmvps.com/blogs/jon_skeet/archive/tags/Edulinq/default.aspx blog
series on re-implementing LINQ to Objects] that is very educational if you
want to dig deeper and understand how each of the
[http://msdn.microsoft.com/en-us/library/bb394939.aspx Standard Query
Operators] may be implemented. For example, topics like deferred execution
are often misunderstood. Walking through the implementation, however, can
go a long way to clarify things.
+
+ #
[http://msmvps.com/blogs/jon_skeet/archive/2010/09/03/reimplementing-linq-to-objects-part-1-introduction.aspx
Introduction]
+ #
[http://msmvps.com/blogs/jon_skeet/archive/2010/09/03/reimplementing-linq-to-objects-part-2-quot-where-quot.aspx
Where]
+ #
[http://msmvps.com/blogs/jon_skeet/archive/2010/12/23/reimplementing-linq-to-objects-part-3-quot-select-quot-and-a-rename.aspx
Select]
+ #
[http://msmvps.com/blogs/jon_skeet/archive/2010/12/24/reimplementing-linq-to-objects-part-4-range.aspx
Range]
+ #
[http://msmvps.com/blogs/jon_skeet/archive/2010/12/24/reimplementing-linq-to-objects-part-5-empty.aspx
Empty]
+ #
[http://msmvps.com/blogs/jon_skeet/archive/2010/12/24/reimplementing-linq-to-objects-part-6-repeat.aspx
Repeat]
+ #
[http://msmvps.com/blogs/jon_skeet/archive/2010/12/26/reimplementing-linq-to-objects-part-7-count-and-longcount.aspx
Count and LongCount]
+ #
[http://msmvps.com/blogs/jon_skeet/archive/2010/12/27/reimplementing-linq-to-objects-part-8-concat.aspx
Concat]
+ #
[http://msmvps.com/blogs/jon_skeet/archive/2010/12/27/reimplementing-linq-to-objects-part-9-selectmany.aspx
SelectMany]
+ #
[http://msmvps.com/blogs/jon_skeet/archive/2010/12/28/reimplementing-linq-to-objects-part-10-any-and-all.aspx
Any and All]
+ #
[http://msmvps.com/blogs/jon_skeet/archive/2010/12/29/reimplementing-linq-to-objects-part-11-first-single-last-and-the-ordefault-versions.aspx
First, Single, Last and the *OrDefault versions]
+ #
[http://msmvps.com/blogs/jon_skeet/archive/2010/12/29/reimplementing-linq-to-objects-part-12-defaultifempty.aspx
DefaultIfEmpty]
+ #
[http://msmvps.com/blogs/jon_skeet/archive/2010/12/30/reimplementing-linq-to-objects-part-13-aggregate.aspx
Aggregate]
+ #
[http://msmvps.com/blogs/jon_skeet/archive/2010/12/30/reimplementing-linq-to-objects-part-14-distinct.aspx
Distinct]
+ #
[http://msmvps.com/blogs/jon_skeet/archive/2010/12/30/reimplementing-linq-to-objects-part-15-union.aspx
Union]
+ #
[http://msmvps.com/blogs/jon_skeet/archive/2010/12/30/reimplementing-linq-to-objects-part-16-intersect-and-build-fiddling.aspx
Intersect]
+ #
[http://msmvps.com/blogs/jon_skeet/archive/2010/12/30/reimplementing-linq-to-objects-part-17-except.aspx
Except]
+ #
[http://msmvps.com/blogs/jon_skeet/archive/2010/12/31/reimplementing-linq-to-objects-part-18-tolookup.aspx
ToLookup]
+ #
[http://msmvps.com/blogs/jon_skeet/archive/2010/12/31/reimplementing-linq-to-objects-part-19-join.aspx
Join]
+ #
[http://msmvps.com/blogs/jon_skeet/archive/2011/01/01/reimplementing-linq-to-objects-part-20-tolist.aspx
ToList]
+ #
[http://msmvps.com/blogs/jon_skeet/archive/2011/01/01/reimplementing-linq-to-objects-part-21-groupby.aspx
GroupBy]
=======================================
--- /dev/null
+++ /OperatorsImplementationStatus.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,70 @@
+#summary Implementation status of all Standard Query Operators
+
+= Operators Implementation Status =
+
+http://chart.apis.google.com/chart?chs=225x125&cht=gom&chd=t:100#foo.png
+
+All of the following standard query operators are implemented and
supported:
+
+== Restriction operators ==
+ *
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.where.aspx
Where]
+== Projection operators ==
+ *
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.select.aspx
Select]
+ *
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.selectmany.aspx
SelectMany]
+== Partitioning operators ==
+ * [http://msdn.microsoft.com/en-us/library/bb503062.aspx Take]
+ * [http://msdn.microsoft.com/en-us/library/bb358985.aspx Skip]
+ *
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.takewhile.aspx
TakeWhile]
+ *
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.skipwhile.aspx
SkipWhile]
+== Join operators ==
+ *
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.join.aspx
Join]
+ *
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.groupjoin.aspx
GroupJoin]
+== Concatenation operator ==
+ * [http://msdn.microsoft.com/en-us/library/bb302894.aspx Concat]
+== Ordering operators ==
+ *
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.orderby.aspx
OrderBy]/[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.thenby.aspx
ThenBy]
+ * [http://msdn.microsoft.com/en-us/library/bb358497.aspx Reverse]
+== Grouping operators ==
+ *
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.groupby.aspx
GroupBy]
+== Set operators ==
+ *
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.distinct.aspx
Distinct]
+ *
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.union.aspx
Union]
+ *
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.intersect.aspx
Intersect]
+ *
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.except.aspx
Except]
+== Conversion operators ==
+ * [http://msdn.microsoft.com/en-us/library/bb298736.aspx ToArray]
+ * [http://msdn.microsoft.com/en-us/library/bb342261.aspx ToList]
+ *
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.todictionary.aspx
ToDictionary]
+ *
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.tolookup.aspx
ToLookup]
+ * [http://msdn.microsoft.com/en-us/library/bb360913.aspx OfType]
+ * [http://msdn.microsoft.com/en-us/library/bb341406.aspx Cast]
+== Equality operator ==
+ *
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.sequenceequal.aspx
SequenceEqual]
+== Element operators ==
+ *
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.first.aspx
First]
+ *
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.firstordefault.aspx
FirstOrDefault]
+ *
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.last.aspx
Last]
+ *
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.lastordefault.aspx
LastOrDefault]
+ *
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.single.aspx
Single]
+ *
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.singleordefault.aspx
SingleOrDefault]
+ * [http://msdn.microsoft.com/en-us/library/bb299233.aspx ElementAt]
+ * [http://msdn.microsoft.com/en-us/library/bb494386.aspx
ElementAtOrDefault]
+ *
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.defaultifempty.aspx
DefaultIfEmpty]
+== Generation operators ==
+ *
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.range.aspx
Range]
+ * [http://msdn.microsoft.com/en-us/library/bb348899.aspx Repeat]
+ * [http://msdn.microsoft.com/en-us/library/bb341042.aspx Empty]
+== Quantifiers ==
+ *
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.any.aspx
Any]
+ * [http://msdn.microsoft.com/en-us/library/bb548541.aspx All]
+ *
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.contains.aspx
Contains]
+== Aggregate operators ==
+ *
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.count.aspx
Count]
+ *
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.longcount.aspx
LongCount]
+ *
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.sum.aspx
Sum]
+ *
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.min.aspx
Min]
+ *
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.max.aspx
Max]
+ *
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.average.aspx
Average]
+ *
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.aggregate.aspx
Aggregate]
+== Other ==
+ * [http://msdn.microsoft.com/en-us/library/bb335435.aspx AsEnumerable]
=======================================
--- /dev/null
+++ /ProjectDescription.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,69 @@
+#summary Project description that appears on the project home page
+
+You might already have discovered that *LINQ is addictive*: once you're
accustomed to solving problems through slick functional queries, it really
hurts being forced back to the imperative style of C# 2.0!
+
+LINQ's query operators are implemented in .NET Framework 3.5. And here
lies a difficulty: *you might be unsuccessful in demanding that all your
customers install Framework 3.5 right away*. So what does this mean if you
want to code in C# 3.0 and write LINQ queries?
+
+The good news is that there is a solution. It relies on two things:
+
+ * [http://msdn.microsoft.com/en-us/library/bb398197(VS.90).aspx Visual
Studio 2008's multi-targeting feature]
+ * [http://code.google.com/p/linqbridge/downloads/list LinqBridge.dll] (a
60KB assembly)
+
+With Visual Studio's multi-targeting and LINQBridge, you'll be able to
write local ([http://msdn.microsoft.com/en-us/library/bb397919.aspx LINQ to
Objects]) queries using the full power of the C# 3.0 compiler—and yet your
programs will require only Framework 2.0.
+
+*LINQBridge is a re-implementation of all the standard query operators in
Framework 3.5's
[http://msdn.microsoft.com/en-us/library/system.linq.enumerable.aspx
System.Linq.Enumerable] class.* It's designed to work with the C# 3.0
compiler, as used by Visual Studio 2008. LINQBridge comprises a
[http://msdn.microsoft.com/en-us/library/bb397919.aspx LINQ to Objects] API
for running local queries. (It doesn't include an implementation of
[http://msdn.microsoft.com/en-us/library/bb386976.aspx LINQ to SQL], nor
[http://msdn.microsoft.com/en-us/library/bb387098.aspx LINQ to XML]; a good
compromise can be to force Framework 3.5 out to just the server machines,
allowing LINQ to SQL to be used where it's needed most).
+
+LINQBridge also includes Framework 3.5's generic
[http://msdn.microsoft.com/en-us/library/bb534960.aspx Func] and
[http://msdn.microsoft.com/en-us/library/018hxwa8.aspx Action] delegates,
as well as
[http://msdn.microsoft.com/en-us/library/system.runtime.compilerservices.extensionattribute.aspx
ExtensionAttribute], allowing you to use C# 3.0's extension methods in
Framework 2.0.
+
+In fact LINQBridge lets you use nearly all of the features in C# 3.0 with
Framework 2.0—including extension methods, lambda functions and query
comprehensions. The only feature it does not support is compiling lambdas
to expression trees (i.e.,
[http://msdn.microsoft.com/en-us/library/bb335710.aspx
Expression<TDelegate>]).
+
+== How does it work? ==
+
+First, it's important to understand that C# 3.0 and Framework 3.5 are
designed to work with CLR 2.0—the same CLR version that Framework 2.0 uses.
This means that the C# 3.0 compiler emits IL code that runs on the same
virtual machine as before.
+
+This makes Framework 3.5 additive—just as Framework 3.0 was
additive—comprising additional assemblies that enhance the existing 2.0
Framework and CLR. So there's nothing to stop us from writing our own
assemblies that do the work of Framework 3.5 (at least, the critical bits
required for local LINQ queries).
+
+But—you might ask—don't LINQ queries depend on Framework 3.5? Strictly
speaking, they don't. C# 3.0 expects that certain method signatures be
present—which Framework 3.5 just happens to provide. For example, consider
the following LINQ query:
+
+{{{
+int[] numbers = { 5, 15, 7, 12 };
+
+var query =
+ from n in numbers
+ where n > 10
+ orderby n
+ select n * 10;
+}}}
+
+In compiling this, C# 3.0 first translates it to:
+
+{{{
+var query = numbers
+ .Where (n => n > 10)
+ .OrderBy (n => n)
+ .Select (n => n * 10);
+}}}
+
+The compiler then looks for Where, OrderBy and Select methods. The
critical thing is that it can find appropriately named methods with the
correct signatures (typically extension methods). *But it doesn't matter
what assembly the methods come from.* LINQBridge simply provides another
source of these methods—that are functionally identically to those
implemented in the Framework 3.5 assemblies.
+
+== How to use LINQBridge ==
+
+LINQBridge requires Visual Studio 2008 (or the standalone C# 3.0 compiler,
if you're keen). First, go to project properties, and change the Target
Framework to 2.0 or 3.0:
+
+http://linqbridge.googlecode.com/svn/wiki/multi-targeting.png
+
+This is a safeguard that prevents you from accidentally referencing
Framework 3.5 assemblies. If your project already references System.Core,
the reference will be greyed out (you can safely delete it).
+
+The next step is to add a reference to `LinqBridge.dll`.
+
+That's all there is to it, now you can start writing LINQ queries!
+
+When all of your clients later upgrade to Framework 3.5, you can upgrade
your project simply by changing the Target Framework back to 3.5 and
replacing the LINQBridge reference with System.Core. LINQBridge uses the
standard LINQ namespaces, so no code edits will be required.
+
+== What if Framework 3.5 is Installed? ==
+
+The presence of Framework 3.5 does not impede LINQBridge in any way. If
your project references LINQBridge during compilation, then it will bind to
LINQBridge's query operators; if it references System.Core during
compilation, then it will bind to Framework 3.5's query operators.
+
+== Can I use LINQBridge with C# 2.0 and Studio 2005? ==
+
+You can—but the query operators will be awkward to use without lambda
expressions, extension methods, query syntax, etc.
=======================================
--- /dev/null
+++ /SampleLinq1.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,37 @@
+#summary Restriction Operators: Where - Simple 1
+#sidebar SamplesTree
+
+== Restriction Operators: Where - Simple 1 ==
+
+This sample uses where to find all elements of an array less than 5.
+
+=== Code ===
+
+{{{
+public void Linq1() {
+ int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
+
+ var lowNums =
+ from n in numbers
+ where n < 5
+ select n;
+
+ Console.WriteLine("Numbers < 5:");
+ foreach (var x in lowNums) {
+ Console.WriteLine(x);
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+Numbers < 5:
+4
+1
+3
+2
+0
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq10.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,40 @@
+#summary Projection Operators: Select - Anonymous Types 2
+#sidebar SamplesTree
+
+== Projection Operators: Select - Anonymous Types 2 ==
+
+This sample uses select to produce a sequence containing text
representations of digits and whether their length is even or odd.
+
+=== Code ===
+
+{{{
+public void Linq10() {
+ int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
+ string[] strings =
{ "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"
};
+
+ var digitOddEvens =
+ from n in numbers
+ select new {Digit = strings[n], Even = (n % 2 == 0)};
+
+ foreach (var d in digitOddEvens) {
+ Console.WriteLine("The digit {0} is {1}.", d.Digit,
d.Even ? "even" : "odd");
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+The digit five is odd.
+The digit four is even.
+The digit one is odd.
+The digit three is odd.
+The digit nine is odd.
+The digit eight is even.
+The digit six is even.
+The digit seven is odd.
+The digit two is even.
+The digit zero is even.
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq100.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,46 @@
+#summary Query Execution: Immediate Execution
+#sidebar SamplesTree
+
+== Query Execution: Immediate Execution ==
+
+The following sample shows how queries can be executed immediately with
operators such as ToList().
+
+=== Code ===
+
+{{{
+public void Linq100() {
+ // Methods like ToList() cause the query to be
+ // executed immediately, caching the results.
+
+ int[] numbers = new int[] { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
+
+ int i = 0;
+ var q = (
+ from n in numbers
+ select ++i )
+ .ToList();
+
+ // The local variable i has already been fully
+ // incremented before we iterate the results:
+ foreach (var v in q) {
+ Console.WriteLine("v = {0}, i = {1}", v, i);
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+v = 1, i = 10
+v = 2, i = 10
+v = 3, i = 10
+v = 4, i = 10
+v = 5, i = 10
+v = 6, i = 10
+v = 7, i = 10
+v = 8, i = 10
+v = 9, i = 10
+v = 10, i = 10
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq101.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,61 @@
+#summary Query Execution: Query Reuse
+#sidebar SamplesTree
+
+== Query Execution: Query Reuse ==
+
+The following sample shows how, because of deferred execution, queries can
be used again after data changes and will then operate on the new data.
+
+=== Code ===
+
+{{{
+public void Linq101() {
+ // Deferred execution lets us define a query once
+ // and then reuse it later after data changes.
+
+ int[] numbers = new int[] { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
+ var lowNumbers =
+ from n in numbers
+ where n <= 3
+ select n;
+
+ Console.WriteLine("First run numbers <= 3:");
+ foreach (int n in lowNumbers) {
+ Console.WriteLine(n);
+ }
+
+ for (int i = 0; i < 10; i++) {
+ numbers[i] = -numbers[i];
+ }
+
+ // During this second run, the same query object,
+ // lowNumbers, will be iterating over the new state
+ // of numbers[], producing different results:
+ Console.WriteLine("Second run numbers <= 3:");
+ foreach (int n in lowNumbers) {
+ Console.WriteLine(n);
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+First run numbers <= 3:
+1
+3
+2
+0
+Second run numbers <= 3:
+-5
+-4
+-1
+-3
+-9
+-8
+-6
+-7
+-2
+0
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq102.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,83 @@
+#summary Join Operators: Cross Join
+#sidebar SamplesTree
+
+== Join Operators: Cross Join ==
+
+This sample shows how to efficiently join elements of two sequences based
on equality between key expressions over the two.
+
+=== Code ===
+
+{{{
+public void Linq102() {
+ string[] categories = new string[]{
+ "Beverages",
+ "Condiments",
+ "Vegetables",
+ "Dairy Products",
+ "Seafood" };
+
+ List<Product> products = GetProductList();
+
+ var q =
+ from c in categories
+ join p in products on c equals p.Category
+ select new { Category = c, p.ProductName };
+
+ foreach (var v in q) {
+ Console.WriteLine(v.ProductName + ": " + v.Category);
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+Chai: Beverages
+Chang: Beverages
+Guaraná Fantástica: Beverages
+Sasquatch Ale: Beverages
+Steeleye Stout: Beverages
+Côte de Blaye: Beverages
+Chartreuse verte: Beverages
+Ipoh Coffee: Beverages
+Laughing Lumberjack Lager: Beverages
+Outback Lager: Beverages
+Rhönbräu Klosterbier: Beverages
+Lakkalikööri: Beverages
+Aniseed Syrup: Condiments
+Chef Anton's Cajun Seasoning: Condiments
+Chef Anton's Gumbo Mix: Condiments
+Grandma's Boysenberry Spread: Condiments
+Northwoods Cranberry Sauce: Condiments
+Genen Shouyu: Condiments
+Gula Malacca: Condiments
+Sirop d'érable: Condiments
+Vegie-spread: Condiments
+Louisiana Fiery Hot Pepper Sauce: Condiments
+Louisiana Hot Spiced Okra: Condiments
+Original Frankfurter grüne Soße: Condiments
+Queso Cabrales: Dairy Products
+Queso Manchego La Pastora: Dairy Products
+Gorgonzola Telino: Dairy Products
+Mascarpone Fabioli: Dairy Products
+Geitost: Dairy Products
+Raclette Courdavault: Dairy Products
+Camembert Pierrot: Dairy Products
+Gudbrandsdalsost: Dairy Products
+Flotemysost: Dairy Products
+Mozzarella di Giovanni: Dairy Products
+Ikura: Seafood
+Konbu: Seafood
+Carnarvon Tigers: Seafood
+Nord-Ost Matjeshering: Seafood
+Inlagd Sill: Seafood
+Gravad lax: Seafood
+Boston Crab Meat: Seafood
+Jack's New England Clam Chowder: Seafood
+Rogede sild: Seafood
+Spegesild: Seafood
+Escargots de Bourgogne: Seafood
+Röd Kaviar: Seafood
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq103.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,91 @@
+#summary Join Operators: Group Join
+#sidebar SamplesTree
+
+== Join Operators: Group Join ==
+
+Using a group join you can get all the products that match a given
category bundled as a sequence.
+
+=== Code ===
+
+{{{
+public void Linq103() {
+ string[] categories = new string[]{
+ "Beverages",
+ "Condiments",
+ "Vegetables",
+ "Dairy Products",
+ "Seafood" };
+
+ List<Product> products = GetProductList();
+
+ var q =
+ from c in categories
+ join p in products on c equals p.Category into ps
+ select new { Category = c, Products = ps };
+
+ foreach (var v in q) {
+ Console.WriteLine(v.Category + ":");
+ foreach (var p in v.Products) {
+ Console.WriteLine(" " + p.ProductName);
+ }
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+Beverages:
+ Chai
+ Chang
+ Guaraná Fantástica
+ Sasquatch Ale
+ Steeleye Stout
+ Côte de Blaye
+ Chartreuse verte
+ Ipoh Coffee
+ Laughing Lumberjack Lager
+ Outback Lager
+ Rhönbräu Klosterbier
+ Lakkalikööri
+Condiments:
+ Aniseed Syrup
+ Chef Anton's Cajun Seasoning
+ Chef Anton's Gumbo Mix
+ Grandma's Boysenberry Spread
+ Northwoods Cranberry Sauce
+ Genen Shouyu
+ Gula Malacca
+ Sirop d'érable
+ Vegie-spread
+ Louisiana Fiery Hot Pepper Sauce
+ Louisiana Hot Spiced Okra
+ Original Frankfurter grüne Soße
+Vegetables:
+Dairy Products:
+ Queso Cabrales
+ Queso Manchego La Pastora
+ Gorgonzola Telino
+ Mascarpone Fabioli
+ Geitost
+ Raclette Courdavault
+ Camembert Pierrot
+ Gudbrandsdalsost
+ Flotemysost
+ Mozzarella di Giovanni
+Seafood:
+ Ikura
+ Konbu
+ Carnarvon Tigers
+ Nord-Ost Matjeshering
+ Inlagd Sill
+ Gravad lax
+ Boston Crab Meat
+ Jack's New England Clam Chowder
+ Rogede sild
+ Spegesild
+ Escargots de Bourgogne
+ Röd Kaviar
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq104.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,84 @@
+#summary Join Operators: Cross Join with Group Join
+#sidebar SamplesTree
+
+== Join Operators: Cross Join with Group Join ==
+
+The group join operator is more general than join, as this slightly more
verbose version of the cross join sample shows.
+
+=== Code ===
+
+{{{
+public void Linq104() {
+ string[] categories = new string[]{
+ "Beverages",
+ "Condiments",
+ "Vegetables",
+ "Dairy Products",
+ "Seafood" };
+
+ List<Product> products = GetProductList();
+
+ var q =
+ from c in categories
+ join p in products on c equals p.Category into ps
+ from p in ps
+ select new { Category = c, p.ProductName };
+
+ foreach (var v in q) {
+ Console.WriteLine(v.ProductName + ": " + v.Category);
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+Chai: Beverages
+Chang: Beverages
+Guaraná Fantástica: Beverages
+Sasquatch Ale: Beverages
+Steeleye Stout: Beverages
+Côte de Blaye: Beverages
+Chartreuse verte: Beverages
+Ipoh Coffee: Beverages
+Laughing Lumberjack Lager: Beverages
+Outback Lager: Beverages
+Rhönbräu Klosterbier: Beverages
+Lakkalikööri: Beverages
+Aniseed Syrup: Condiments
+Chef Anton's Cajun Seasoning: Condiments
+Chef Anton's Gumbo Mix: Condiments
+Grandma's Boysenberry Spread: Condiments
+Northwoods Cranberry Sauce: Condiments
+Genen Shouyu: Condiments
+Gula Malacca: Condiments
+Sirop d'érable: Condiments
+Vegie-spread: Condiments
+Louisiana Fiery Hot Pepper Sauce: Condiments
+Louisiana Hot Spiced Okra: Condiments
+Original Frankfurter grüne Soße: Condiments
+Queso Cabrales: Dairy Products
+Queso Manchego La Pastora: Dairy Products
+Gorgonzola Telino: Dairy Products
+Mascarpone Fabioli: Dairy Products
+Geitost: Dairy Products
+Raclette Courdavault: Dairy Products
+Camembert Pierrot: Dairy Products
+Gudbrandsdalsost: Dairy Products
+Flotemysost: Dairy Products
+Mozzarella di Giovanni: Dairy Products
+Ikura: Seafood
+Konbu: Seafood
+Carnarvon Tigers: Seafood
+Nord-Ost Matjeshering: Seafood
+Inlagd Sill: Seafood
+Gravad lax: Seafood
+Boston Crab Meat: Seafood
+Jack's New England Clam Chowder: Seafood
+Rogede sild: Seafood
+Spegesild: Seafood
+Escargots de Bourgogne: Seafood
+Röd Kaviar: Seafood
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq105.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,85 @@
+#summary Join Operators: Left Outer Join
+#sidebar SamplesTree
+
+== Join Operators: Left Outer Join ==
+
+A so-called outer join can be expressed with a group join. A left outer
join is like a cross join, except that all the left hand side elements get
included at least once, even if they don't match any right hand side
elements. Note how Vegetables shows up in the output even though it has no
matching products.
+
+=== Code ===
+
+{{{
+public void Linq105() {
+ string[] categories = new string[]{
+ "Beverages",
+ "Condiments",
+ "Vegetables",
+ "Dairy Products",
+ "Seafood" };
+
+ List<Product> products = GetProductList();
+
+ var q =
+ from c in categories
+ join p in products on c equals p.Category into ps
+ from p in ps.DefaultIfEmpty()
+ select new { Category = c, ProductName = p == null ? "(No
products)" : p.ProductName };
+
+ foreach (var v in q) {
+ Console.WriteLine(v.ProductName + ": " + v.Category);
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+Chai: Beverages
+Chang: Beverages
+Guaraná Fantástica: Beverages
+Sasquatch Ale: Beverages
+Steeleye Stout: Beverages
+Côte de Blaye: Beverages
+Chartreuse verte: Beverages
+Ipoh Coffee: Beverages
+Laughing Lumberjack Lager: Beverages
+Outback Lager: Beverages
+Rhönbräu Klosterbier: Beverages
+Lakkalikööri: Beverages
+Aniseed Syrup: Condiments
+Chef Anton's Cajun Seasoning: Condiments
+Chef Anton's Gumbo Mix: Condiments
+Grandma's Boysenberry Spread: Condiments
+Northwoods Cranberry Sauce: Condiments
+Genen Shouyu: Condiments
+Gula Malacca: Condiments
+Sirop d'érable: Condiments
+Vegie-spread: Condiments
+Louisiana Fiery Hot Pepper Sauce: Condiments
+Louisiana Hot Spiced Okra: Condiments
+Original Frankfurter grüne Soße: Condiments
+(No products): Vegetables
+Queso Cabrales: Dairy Products
+Queso Manchego La Pastora: Dairy Products
+Gorgonzola Telino: Dairy Products
+Mascarpone Fabioli: Dairy Products
+Geitost: Dairy Products
+Raclette Courdavault: Dairy Products
+Camembert Pierrot: Dairy Products
+Gudbrandsdalsost: Dairy Products
+Flotemysost: Dairy Products
+Mozzarella di Giovanni: Dairy Products
+Ikura: Seafood
+Konbu: Seafood
+Carnarvon Tigers: Seafood
+Nord-Ost Matjeshering: Seafood
+Inlagd Sill: Seafood
+Gravad lax: Seafood
+Boston Crab Meat: Seafood
+Jack's New England Clam Chowder: Seafood
+Rogede sild: Seafood
+Spegesild: Seafood
+Escargots de Bourgogne: Seafood
+Röd Kaviar: Seafood
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq106.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,1180 @@
+#summary Sample Data: CustomerList / ProductList
+#sidebar SamplesTree
+
+== Sample Data: CustomerList / ProductList ==
+
+This method displays the sample data used by the queries above. You can
also see the method below that constructs the lists. ProductList is built
using a collection initializer and CustomerList uses XLinq to read its
values into memory from an XML document.
+
+=== Code ===
+
+{{{
+public void Linq106() {
+ ObjectDumper.Write(GetCustomerList(), 1);
+
+ Console.WriteLine();
+
+ ObjectDumper.Write(GetProductList());
+}
+
+private void createLists() {
+ // Product data created in-memory using collection initializer:
+ productList =
+ new List<Product> {
+ new Product { ProductID = 1, ProductName = "Chai", Category
= "Beverages", UnitPrice = 18.0000M, UnitsInStock = 39 },
+ new Product { ProductID = 2, ProductName = "Chang", Category
= "Beverages", UnitPrice = 19.0000M, UnitsInStock = 17 },
+ new Product { ProductID = 3, ProductName = "Aniseed Syrup",
Category = "Condiments", UnitPrice = 10.0000M, UnitsInStock = 13 },
+ new Product { ProductID = 4, ProductName = "Chef Anton's Cajun
Seasoning", Category = "Condiments", UnitPrice = 22.0000M, UnitsInStock =
53 },
+ new Product { ProductID = 5, ProductName = "Chef Anton's Gumbo
Mix", Category = "Condiments", UnitPrice = 21.3500M, UnitsInStock = 0 },
+ new Product { ProductID = 6, ProductName = "Grandma's
Boysenberry Spread", Category = "Condiments", UnitPrice = 25.0000M,
UnitsInStock = 120 },
+ new Product { ProductID = 7, ProductName = "Uncle Bob's
Organic Dried Pears", Category = "Produce", UnitPrice = 30.0000M,
UnitsInStock = 15 },
+ new Product { ProductID = 8, ProductName = "Northwoods
Cranberry Sauce", Category = "Condiments", UnitPrice = 40.0000M,
UnitsInStock = 6 },
+ new Product { ProductID = 9, ProductName = "Mishi Kobe Niku",
Category = "Meat/Poultry", UnitPrice = 97.0000M, UnitsInStock = 29 },
+ new Product { ProductID = 10, ProductName = "Ikura", Category
= "Seafood", UnitPrice = 31.0000M, UnitsInStock = 31 },
+ new Product { ProductID = 11, ProductName = "Queso Cabrales",
Category = "Dairy Products", UnitPrice = 21.0000M, UnitsInStock = 22 },
+ new Product { ProductID = 12, ProductName = "Queso Manchego La
Pastora", Category = "Dairy Products", UnitPrice = 38.0000M, UnitsInStock =
86 },
+ new Product { ProductID = 13, ProductName = "Konbu", Category
= "Seafood", UnitPrice = 6.0000M, UnitsInStock = 24 },
+ new Product { ProductID = 14, ProductName = "Tofu", Category
= "Produce", UnitPrice = 23.2500M, UnitsInStock = 35 },
+ new Product { ProductID = 15, ProductName = "Genen Shouyu",
Category = "Condiments", UnitPrice = 15.5000M, UnitsInStock = 39 },
+ new Product { ProductID = 16, ProductName = "Pavlova",
Category = "Confections", UnitPrice = 17.4500M, UnitsInStock = 29 },
+ new Product { ProductID = 17, ProductName = "Alice Mutton",
Category = "Meat/Poultry", UnitPrice = 39.0000M, UnitsInStock = 0 },
+ new Product { ProductID = 18, ProductName = "Carnarvon
Tigers", Category = "Seafood", UnitPrice = 62.5000M, UnitsInStock = 42 },
+ new Product { ProductID = 19, ProductName = "Teatime Chocolate
Biscuits", Category = "Confections", UnitPrice = 9.2000M, UnitsInStock = 25
},
+ new Product { ProductID = 20, ProductName = "Sir Rodney's
Marmalade", Category = "Confections", UnitPrice = 81.0000M, UnitsInStock =
40 },
+ new Product { ProductID = 21, ProductName = "Sir Rodney's
Scones", Category = "Confections", UnitPrice = 10.0000M, UnitsInStock = 3 },
+ new Product { ProductID = 22, ProductName = "Gustaf's
Knäckebröd", Category = "Grains/Cereals", UnitPrice = 21.0000M,
UnitsInStock = 104 },
+ new Product { ProductID = 23, ProductName = "Tunnbröd",
Category = "Grains/Cereals", UnitPrice = 9.0000M, UnitsInStock = 61 },
+ new Product { ProductID = 24, ProductName = "Guaraná
Fantástica", Category = "Beverages", UnitPrice = 4.5000M, UnitsInStock = 20
},
+ new Product { ProductID = 25, ProductName = "NuNuCa
Nuß-Nougat-Creme", Category = "Confections", UnitPrice = 14.0000M,
UnitsInStock = 76 },
+ new Product { ProductID = 26, ProductName = "Gumbär
Gummibärchen", Category = "Confections", UnitPrice = 31.2300M, UnitsInStock
= 15 },
+ new Product { ProductID = 27, ProductName = "Schoggi
Schokolade", Category = "Confections", UnitPrice = 43.9000M, UnitsInStock =
49 },
+ new Product { ProductID = 28, ProductName = "Rössle
Sauerkraut", Category = "Produce", UnitPrice = 45.6000M, UnitsInStock = 26
},
+ new Product { ProductID = 29, ProductName = "Thüringer
Rostbratwurst", Category = "Meat/Poultry", UnitPrice = 123.7900M,
UnitsInStock = 0 },
+ new Product { ProductID = 30, ProductName = "Nord-Ost
Matjeshering", Category = "Seafood", UnitPrice = 25.8900M, UnitsInStock =
10 },
+ new Product { ProductID = 31, ProductName = "Gorgonzola
Telino", Category = "Dairy Products", UnitPrice = 12.5000M, UnitsInStock =
0 },
+ new Product { ProductID = 32, ProductName = "Mascarpone
Fabioli", Category = "Dairy Products", UnitPrice = 32.0000M, UnitsInStock =
9 },
+ new Product { ProductID = 33, ProductName = "Geitost",
Category = "Dairy Products", UnitPrice = 2.5000M, UnitsInStock = 112 },
+ new Product { ProductID = 34, ProductName = "Sasquatch Ale",
Category = "Beverages", UnitPrice = 14.0000M, UnitsInStock = 111 },
+ new Product { ProductID = 35, ProductName = "Steeleye Stout",
Category = "Beverages", UnitPrice = 18.0000M, UnitsInStock = 20 },
+ new Product { ProductID = 36, ProductName = "Inlagd Sill",
Category = "Seafood", UnitPrice = 19.0000M, UnitsInStock = 112 },
+ new Product { ProductID = 37, ProductName = "Gravad lax",
Category = "Seafood", UnitPrice = 26.0000M, UnitsInStock = 11 },
+ new Product { ProductID = 38, ProductName = "Côte de Blaye",
Category = "Beverages", UnitPrice = 263.5000M, UnitsInStock = 17 },
+ new Product { ProductID = 39, ProductName = "Chartreuse
verte", Category = "Beverages", UnitPrice = 18.0000M, UnitsInStock = 69 },
+ new Product { ProductID = 40, ProductName = "Boston Crab
Meat", Category = "Seafood", UnitPrice = 18.4000M, UnitsInStock = 123 },
+ new Product { ProductID = 41, ProductName = "Jack's New
England Clam Chowder", Category = "Seafood", UnitPrice = 9.6500M,
UnitsInStock = 85 },
+ new Product { ProductID = 42, ProductName = "Singaporean
Hokkien Fried Mee", Category = "Grains/Cereals", UnitPrice = 14.0000M,
UnitsInStock = 26 },
+ new Product { ProductID = 43, ProductName = "Ipoh Coffee",
Category = "Beverages", UnitPrice = 46.0000M, UnitsInStock = 17 },
+ new Product { ProductID = 44, ProductName = "Gula Malacca",
Category = "Condiments", UnitPrice = 19.4500M, UnitsInStock = 27 },
+ new Product { ProductID = 45, ProductName = "Rogede sild",
Category = "Seafood", UnitPrice = 9.5000M, UnitsInStock = 5 },
+ new Product { ProductID = 46, ProductName = "Spegesild",
Category = "Seafood", UnitPrice = 12.0000M, UnitsInStock = 95 },
+ new Product { ProductID = 47, ProductName = "Zaanse koeken",
Category = "Confections", UnitPrice = 9.5000M, UnitsInStock = 36 },
+ new Product { ProductID = 48, ProductName = "Chocolade",
Category = "Confections", UnitPrice = 12.7500M, UnitsInStock = 15 },
+ new Product { ProductID = 49, ProductName = "Maxilaku",
Category = "Confections", UnitPrice = 20.0000M, UnitsInStock = 10 },
+ new Product { ProductID = 50, ProductName = "Valkoinen
suklaa", Category = "Confections", UnitPrice = 16.2500M, UnitsInStock = 65
},
+ new Product { ProductID = 51, ProductName = "Manjimup Dried
Apples", Category = "Produce", UnitPrice = 53.0000M, UnitsInStock = 20 },
+ new Product { ProductID = 52, ProductName = "Filo Mix",
Category = "Grains/Cereals", UnitPrice = 7.0000M, UnitsInStock = 38 },
+ new Product { ProductID = 53, ProductName = "Perth Pasties",
Category = "Meat/Poultry", UnitPrice = 32.8000M, UnitsInStock = 0 },
+ new Product { ProductID = 54, ProductName = "Tourtière",
Category = "Meat/Poultry", UnitPrice = 7.4500M, UnitsInStock = 21 },
+ new Product { ProductID = 55, ProductName = "Pâté chinois",
Category = "Meat/Poultry", UnitPrice = 24.0000M, UnitsInStock = 115 },
+ new Product { ProductID = 56, ProductName = "Gnocchi di nonna
Alice", Category = "Grains/Cereals", UnitPrice = 38.0000M, UnitsInStock =
21 },
+ new Product { ProductID = 57, ProductName = "Ravioli Angelo",
Category = "Grains/Cereals", UnitPrice = 19.5000M, UnitsInStock = 36 },
+ new Product { ProductID = 58, ProductName = "Escargots de
Bourgogne", Category = "Seafood", UnitPrice = 13.2500M, UnitsInStock = 62 },
+ new Product { ProductID = 59, ProductName = "Raclette
Courdavault", Category = "Dairy Products", UnitPrice = 55.0000M,
UnitsInStock = 79 },
+ new Product { ProductID = 60, ProductName = "Camembert
Pierrot", Category = "Dairy Products", UnitPrice = 34.0000M, UnitsInStock =
19 },
+ new Product { ProductID = 61, ProductName = "Sirop d'érable",
Category = "Condiments", UnitPrice = 28.5000M, UnitsInStock = 113 },
+ new Product { ProductID = 62, ProductName = "Tarte au sucre",
Category = "Confections", UnitPrice = 49.3000M, UnitsInStock = 17 },
+ new Product { ProductID = 63, ProductName = "Vegie-spread",
Category = "Condiments", UnitPrice = 43.9000M, UnitsInStock = 24 },
+ new Product { ProductID = 64, ProductName = "Wimmers gute
Semmelknödel", Category = "Grains/Cereals", UnitPrice = 33.2500M,
UnitsInStock = 22 },
+ new Product { ProductID = 65, ProductName = "Louisiana Fiery
Hot Pepper Sauce", Category = "Condiments", UnitPrice = 21.0500M,
UnitsInStock = 76 },
+ new Product { ProductID = 66, ProductName = "Louisiana Hot
Spiced Okra", Category = "Condiments", UnitPrice = 17.0000M, UnitsInStock =
4 },
+ new Product { ProductID = 67, ProductName = "Laughing
Lumberjack Lager", Category = "Beverages", UnitPrice = 14.0000M,
UnitsInStock = 52 },
+ new Product { ProductID = 68, ProductName = "Scottish
Longbreads", Category = "Confections", UnitPrice = 12.5000M, UnitsInStock =
6 },
+ new Product { ProductID = 69, ProductName
= "Gudbrandsdalsost", Category = "Dairy Products", UnitPrice = 36.0000M,
UnitsInStock = 26 },
+ new Product { ProductID = 70, ProductName = "Outback Lager",
Category = "Beverages", UnitPrice = 15.0000M, UnitsInStock = 15 },
+ new Product { ProductID = 71, ProductName = "Flotemysost",
Category = "Dairy Products", UnitPrice = 21.5000M, UnitsInStock = 26 },
+ new Product { ProductID = 72, ProductName = "Mozzarella di
Giovanni", Category = "Dairy Products", UnitPrice = 34.8000M, UnitsInStock
= 14 },
+ new Product { ProductID = 73, ProductName = "Röd Kaviar",
Category = "Seafood", UnitPrice = 15.0000M, UnitsInStock = 101 },
+ new Product { ProductID = 74, ProductName = "Longlife Tofu",
Category = "Produce", UnitPrice = 10.0000M, UnitsInStock = 4 },
+ new Product { ProductID = 75, ProductName = "Rhönbräu
Klosterbier", Category = "Beverages", UnitPrice = 7.7500M, UnitsInStock =
125 },
+ new Product { ProductID = 76, ProductName = "Lakkalikööri",
Category = "Beverages", UnitPrice = 18.0000M, UnitsInStock = 57 },
+ new Product { ProductID = 77, ProductName = "Original
Frankfurter grüne Soße", Category = "Condiments", UnitPrice = 13.0000M,
UnitsInStock = 32 }
+ };
+
+
+ // Customer/order data read into memory from XML file using XLinq:
+ string customerListPath =
Path.GetFullPath(Path.Combine(dataPath, "customers.xml"));
+
+ customerList = new List<Customer>();
+
+ var doc = new XmlDocument();
+ doc.Load(customerListPath);
+ foreach (XmlElement e in doc.DocumentElement.SelectNodes("customer"))
+ {
+ var orders = new List<Order>();
+
+ foreach (XmlElement o in e.SelectNodes("orders/order"))
+ {
+ orders.Add(new Order {
+ OrderID = XmlConvert.ToInt32(o["id"].InnerText),
+ OrderDate =
XmlConvert.ToDateTime(o["orderdate"].InnerText),
+ Total = XmlConvert.ToDecimal(o["total"].InnerText),
+ });
+ }
+
+ customerList.Add(new Customer {
+ CustomerID = e["id"] == null ? null : e["id"].InnerText,
+ CompanyName = e["name"] == null ? null : e["name"].InnerText,
+ Address = e["address"] == null ? null : e["address"].InnerText,
+ City = e["city"] == null ? null : e["city"].InnerText,
+ Region = e["region"] == null ? null : e["region"].InnerText,
+ PostalCode = e["postalcode"] == null ? null :
e["postalcode"].InnerText,
+ Country = e["country"] == null ? null : e["country"].InnerText,
+ Phone = e["phone"] == null ? null : e["phone"].InnerText,
+ Fax = e["fax"] == null ? null : e["fax"].InnerText,
+ Orders = orders.ToArray(),
+ });
+ }
+ /*
+ customerList = (
+ from e in XDocument.Load(customerListPath).
+ Root.Elements("customer")
+ select new Customer {
+ CustomerID = (string)e.Element("id"),
+ CompanyName = (string)e.Element("name"),
+ Address = (string)e.Element("address"),
+ City = (string)e.Element("city"),
+ Region = (string)e.Element("region"),
+ PostalCode = (string)e.Element("postalcode"),
+ Country = (string)e.Element("country"),
+ Phone = (string)e.Element("phone"),
+ Fax = (string)e.Element("fax"),
+ Orders = (
+ from o in e.Elements("orders").Elements("order")
+ select new Order {
+ OrderID = (int)o.Element("id"),
+ OrderDate = (DateTime)o.Element("orderdate"),
+ Total = (decimal)o.Element("total") } )
+ .ToArray() } )
+ .ToList();
+ */
+}
+
+public List<Product> GetProductList() {
+ if (productList == null)
+ createLists();
+
+ return productList;
+}
+
+public List<Customer> GetCustomerList() {
+ if (customerList == null)
+ createLists();
+
+ return customerList;
+}
+
+}}}
+
+=== Output ===
+
+{{{
+CustomerID=ALFKI CompanyName=Alfreds Futterkiste
Address=Obere Str. 57 City=Berlin Region=null
PostalCode=12209 Country=Germany Phone=030-0074321
Fax=030-0076545 Orders=...
+ Orders: OrderID=10643 OrderDate=8/25/1997 Total=814.50
+ Orders: OrderID=10692 OrderDate=10/3/1997 Total=878.00
+ Orders: OrderID=10702 OrderDate=10/13/1997 Total=330.00
+ Orders: OrderID=10835 OrderDate=1/15/1998 Total=845.80
+ Orders: OrderID=10952 OrderDate=3/16/1998 Total=471.20
+ Orders: OrderID=11011 OrderDate=4/9/1998 Total=933.50
+CustomerID=ANATR CompanyName=Ana Trujillo Emparedados y helados
Address=Avda. de la Constitución 2222 City=México D.F.
Region=null PostalCode=05021 Country=Mexico Phone=(5)
555-4729 Fax=(5) 555-3745 Orders=...
+ Orders: OrderID=10308 OrderDate=9/18/1996 Total=88.80
+ Orders: OrderID=10625 OrderDate=8/8/1997 Total=479.75
+ Orders: OrderID=10759 OrderDate=11/28/1997 Total=320.00
+ Orders: OrderID=10926 OrderDate=3/4/1998 Total=514.40
+CustomerID=ANTON CompanyName=Antonio Moreno Taquería
Address=Mataderos 2312 City=México D.F. Region=null
PostalCode=05023 Country=Mexico Phone=(5) 555-3932
Fax=null Orders=...
+ Orders: OrderID=10365 OrderDate=11/27/1996 Total=403.20
+ Orders: OrderID=10507 OrderDate=4/15/1997 Total=749.06
+ Orders: OrderID=10535 OrderDate=5/13/1997 Total=1940.85
+ Orders: OrderID=10573 OrderDate=6/19/1997 Total=2082.00
+ Orders: OrderID=10677 OrderDate=9/22/1997 Total=813.36
+ Orders: OrderID=10682 OrderDate=9/25/1997 Total=375.50
+ Orders: OrderID=10856 OrderDate=1/28/1998 Total=660.00
+CustomerID=AROUT CompanyName=Around the Horn Address=120
Hanover Sq. City=London Region=null PostalCode=WA1 1DP
Country=UK Phone=(171) 555-7788 Fax=(171) 555-6750 Orders=...
+ Orders: OrderID=10355 OrderDate=11/15/1996 Total=480.00
+ Orders: OrderID=10383 OrderDate=12/16/1996 Total=899.00
+ Orders: OrderID=10453 OrderDate=2/21/1997 Total=407.70
+ Orders: OrderID=10558 OrderDate=6/4/1997 Total=2142.90
+ Orders: OrderID=10707 OrderDate=10/16/1997 Total=1641.00
+ Orders: OrderID=10741 OrderDate=11/14/1997 Total=228.00
+ Orders: OrderID=10743 OrderDate=11/17/1997 Total=319.20
+ Orders: OrderID=10768 OrderDate=12/8/1997 Total=1477.00
+ Orders: OrderID=10793 OrderDate=12/24/1997 Total=191.10
+ Orders: OrderID=10864 OrderDate=2/2/1998 Total=282.00
+ Orders: OrderID=10920 OrderDate=3/3/1998 Total=390.00
+ Orders: OrderID=10953 OrderDate=3/16/1998 Total=4441.25
+ Orders: OrderID=11016 OrderDate=4/10/1998 Total=491.50
+CustomerID=BERGS CompanyName=Berglunds snabbköp
Address=Berguvsvägen 8 City=Luleå Region=null
PostalCode=S-958 22 Country=Sweden Phone=0921-12 34 65 Fax=0921-12
34 67 Orders=...
+ Orders: OrderID=10278 OrderDate=8/12/1996 Total=1488.80
+ Orders: OrderID=10280 OrderDate=8/14/1996 Total=613.20
+ Orders: OrderID=10384 OrderDate=12/16/1996 Total=2222.40
+ Orders: OrderID=10444 OrderDate=2/12/1997 Total=1031.70
+ Orders: OrderID=10445 OrderDate=2/13/1997 Total=174.90
+ Orders: OrderID=10524 OrderDate=5/1/1997 Total=3192.65
+ Orders: OrderID=10572 OrderDate=6/18/1997 Total=1501.08
+ Orders: OrderID=10626 OrderDate=8/11/1997 Total=1503.60
+ Orders: OrderID=10654 OrderDate=9/2/1997 Total=601.83
+ Orders: OrderID=10672 OrderDate=9/17/1997 Total=3815.25
+ Orders: OrderID=10689 OrderDate=10/1/1997 Total=472.50
+ Orders: OrderID=10733 OrderDate=11/7/1997 Total=1459.00
+ Orders: OrderID=10778 OrderDate=12/16/1997 Total=96.50
+ Orders: OrderID=10837 OrderDate=1/16/1998 Total=1064.50
+ Orders: OrderID=10857 OrderDate=1/28/1998 Total=2048.21
+ Orders: OrderID=10866 OrderDate=2/3/1998 Total=1096.20
+ Orders: OrderID=10875 OrderDate=2/6/1998 Total=709.55
+ Orders: OrderID=10924 OrderDate=3/4/1998 Total=1835.70
+CustomerID=BLAUS CompanyName=Blauer See Delikatessen
Address=Forsterstr. 57 City=Mannheim Region=null
PostalCode=68306 Country=Germany Phone=0621-08460
Fax=0621-08924 Orders=...
+ Orders: OrderID=10501 OrderDate=4/9/1997 Total=149.00
+ Orders: OrderID=10509 OrderDate=4/17/1997 Total=136.80
+ Orders: OrderID=10582 OrderDate=6/27/1997 Total=330.00
+ Orders: OrderID=10614 OrderDate=7/29/1997 Total=464.00
+ Orders: OrderID=10853 OrderDate=1/27/1998 Total=625.00
+ Orders: OrderID=10956 OrderDate=3/17/1998 Total=677.00
+ Orders: OrderID=11058 OrderDate=4/29/1998 Total=858.00
+CustomerID=BLONP CompanyName=Blondel père et fils
Address=24, place Kléber City=Strasbourg Region=null
PostalCode=67000 Country=France Phone=88.60.15.31
Fax=88.60.15.32 Orders=...
+ Orders: OrderID=10265 OrderDate=7/25/1996 Total=1176.00
+ Orders: OrderID=10297 OrderDate=9/4/1996 Total=1420.00
+ Orders: OrderID=10360 OrderDate=11/22/1996 Total=7390.20
+ Orders: OrderID=10436 OrderDate=2/5/1997 Total=1994.52
+ Orders: OrderID=10449 OrderDate=2/18/1997 Total=1838.20
+ Orders: OrderID=10559 OrderDate=6/5/1997 Total=520.41
+ Orders: OrderID=10566 OrderDate=6/12/1997 Total=1761.00
+ Orders: OrderID=10584 OrderDate=6/30/1997 Total=593.75
+ Orders: OrderID=10628 OrderDate=8/12/1997 Total=450.00
+ Orders: OrderID=10679 OrderDate=9/23/1997 Total=660.00
+ Orders: OrderID=10826 OrderDate=1/12/1998 Total=730.00
+CustomerID=BOLID CompanyName=Bólido Comidas preparadas Address=C/
Araquil, 67 City=Madrid Region=null PostalCode=28023
Country=Spain Phone=(91) 555 22 82 Fax=(91) 555 91 99 Orders=...
+ Orders: OrderID=10326 OrderDate=10/10/1996 Total=982.00
+ Orders: OrderID=10801 OrderDate=12/29/1997 Total=3026.85
+ Orders: OrderID=10970 OrderDate=3/24/1998 Total=224.00
+CustomerID=BONAP CompanyName=Bon app' Address=12, rue des
Bouchers City=Marseille Region=null PostalCode=13008
Country=France Phone=91.24.45.40 Fax=91.24.45.41 Orders=...
+ Orders: OrderID=10331 OrderDate=10/16/1996 Total=88.50
+ Orders: OrderID=10340 OrderDate=10/29/1996 Total=2436.18
+ Orders: OrderID=10362 OrderDate=11/25/1996 Total=1549.60
+ Orders: OrderID=10470 OrderDate=3/11/1997 Total=1820.80
+ Orders: OrderID=10511 OrderDate=4/18/1997 Total=2550.00
+ Orders: OrderID=10525 OrderDate=5/2/1997 Total=818.40
+ Orders: OrderID=10663 OrderDate=9/10/1997 Total=1930.40
+ Orders: OrderID=10715 OrderDate=10/23/1997 Total=1296.00
+ Orders: OrderID=10730 OrderDate=11/5/1997 Total=484.26
+ Orders: OrderID=10732 OrderDate=11/6/1997 Total=360.00
+ Orders: OrderID=10755 OrderDate=11/26/1997 Total=1948.50
+ Orders: OrderID=10827 OrderDate=1/12/1998 Total=843.00
+ Orders: OrderID=10871 OrderDate=2/5/1998 Total=1979.23
+ Orders: OrderID=10876 OrderDate=2/9/1998 Total=917.00
+ Orders: OrderID=10932 OrderDate=3/6/1998 Total=1788.63
+ Orders: OrderID=10940 OrderDate=3/11/1998 Total=360.00
+ Orders: OrderID=11076 OrderDate=5/6/1998 Total=792.75
+CustomerID=BOTTM CompanyName=Bottom-Dollar Markets Address=23
Tsawassen Blvd. City=Tsawassen Region=BC PostalCode=T2F
8M4 Country=Canada Phone=(604) 555-4729 Fax=(604) 555-3745
Orders=...
+ Orders: OrderID=10389 OrderDate=12/20/1996 Total=1832.80
+ Orders: OrderID=10410 OrderDate=1/10/1997 Total=802.00
+ Orders: OrderID=10411 OrderDate=1/10/1997 Total=966.80
+ Orders: OrderID=10431 OrderDate=1/30/1997 Total=1892.25
+ Orders: OrderID=10492 OrderDate=4/1/1997 Total=851.20
+ Orders: OrderID=10742 OrderDate=11/14/1997 Total=3118.00
+ Orders: OrderID=10918 OrderDate=3/2/1998 Total=1447.50
+ Orders: OrderID=10944 OrderDate=3/12/1998 Total=1025.32
+ Orders: OrderID=10949 OrderDate=3/13/1998 Total=4422.00
+ Orders: OrderID=10975 OrderDate=3/25/1998 Total=717.50
+ Orders: OrderID=10982 OrderDate=3/27/1998 Total=1014.00
+ Orders: OrderID=11027 OrderDate=4/16/1998 Total=877.72
+ Orders: OrderID=11045 OrderDate=4/23/1998 Total=1309.50
+ Orders: OrderID=11048 OrderDate=4/24/1998 Total=525.00
+CustomerID=BSBEV CompanyName=B's Beverages Address=Fauntleroy
Circus City=London Region=null PostalCode=EC2 5NT
Country=UK Phone=(171) 555-1212 Fax=null Orders=...
+ Orders: OrderID=10289 OrderDate=8/26/1996 Total=479.40
+ Orders: OrderID=10471 OrderDate=3/11/1997 Total=1328.00
+ Orders: OrderID=10484 OrderDate=3/24/1997 Total=386.20
+ Orders: OrderID=10538 OrderDate=5/15/1997 Total=139.80
+ Orders: OrderID=10539 OrderDate=5/16/1997 Total=355.50
+ Orders: OrderID=10578 OrderDate=6/24/1997 Total=477.00
+ Orders: OrderID=10599 OrderDate=7/15/1997 Total=493.00
+ Orders: OrderID=10943 OrderDate=3/11/1998 Total=711.00
+ Orders: OrderID=10947 OrderDate=3/13/1998 Total=220.00
+ Orders: OrderID=11023 OrderDate=4/14/1998 Total=1500.00
+CustomerID=CACTU CompanyName=Cactus Comidas para llevar
Address=Cerrito 333 City=Buenos Aires Region=null
PostalCode=1010 Country=Argentina Phone=(1) 135-5555
Fax=(1) 135-4892 Orders=...
+ Orders: OrderID=10521 OrderDate=4/29/1997 Total=225.50
+ Orders: OrderID=10782 OrderDate=12/17/1997 Total=12.50
+ Orders: OrderID=10819 OrderDate=1/7/1998 Total=477.00
+ Orders: OrderID=10881 OrderDate=2/11/1998 Total=150.00
+ Orders: OrderID=10937 OrderDate=3/10/1998 Total=644.80
+ Orders: OrderID=11054 OrderDate=4/28/1998 Total=305.00
+CustomerID=CENTC CompanyName=Centro comercial Moctezuma
Address=Sierras de Granada 9993 City=México D.F.
Region=null PostalCode=05022 Country=Mexico Phone=(5)
555-3392 Fax=(5) 555-7293 Orders=...
+ Orders: OrderID=10259 OrderDate=7/18/1996 Total=100.80
+CustomerID=CHOPS CompanyName=Chop-suey Chinese Address=Hauptstr.
29 City=Bern Region=null PostalCode=3012
Country=Switzerland Phone=0452-076545 Fax=null Orders=...
+ Orders: OrderID=10254 OrderDate=7/11/1996 Total=556.62
+ Orders: OrderID=10370 OrderDate=12/3/1996 Total=1117.60
+ Orders: OrderID=10519 OrderDate=4/28/1997 Total=2314.20
+ Orders: OrderID=10731 OrderDate=11/6/1997 Total=1890.50
+ Orders: OrderID=10746 OrderDate=11/19/1997 Total=2311.70
+ Orders: OrderID=10966 OrderDate=3/20/1998 Total=1098.46
+ Orders: OrderID=11029 OrderDate=4/16/1998 Total=1286.80
+ Orders: OrderID=11041 OrderDate=4/22/1998 Total=1773.00
+CustomerID=COMMI CompanyName=Comércio Mineiro Address=Av. dos
Lusíadas, 23 City=São Paulo Region=SP PostalCode=05432-043
Country=Brazil Phone=(11) 555-7647 Fax=null Orders=...
+ Orders: OrderID=10290 OrderDate=8/27/1996 Total=2169.00
+ Orders: OrderID=10466 OrderDate=3/6/1997 Total=216.00
+ Orders: OrderID=10494 OrderDate=4/2/1997 Total=912.00
+ Orders: OrderID=10969 OrderDate=3/23/1998 Total=108.00
+ Orders: OrderID=11042 OrderDate=4/22/1998 Total=405.75
+CustomerID=CONSH CompanyName=Consolidated Holdings
Address=Berkeley Gardens, 12 Brewery City=London Region=null
PostalCode=WX1 6LT Country=UK Phone=(171) 555-2282 Fax=(171)
555-9199 Orders=...
+ Orders: OrderID=10435 OrderDate=2/4/1997 Total=631.60
+ Orders: OrderID=10462 OrderDate=3/3/1997 Total=156.00
+ Orders: OrderID=10848 OrderDate=1/23/1998 Total=931.50
+CustomerID=DRACD CompanyName=Drachenblut Delikatessen
Address=Walserweg 21 City=Aachen Region=null
PostalCode=52066 Country=Germany Phone=0241-039123
Fax=0241-059428 Orders=...
+ Orders: OrderID=10363 OrderDate=11/26/1996 Total=447.20
+ Orders: OrderID=10391 OrderDate=12/23/1996 Total=86.40
+ Orders: OrderID=10797 OrderDate=12/25/1997 Total=420.00
+ Orders: OrderID=10825 OrderDate=1/9/1998 Total=1030.76
+ Orders: OrderID=11036 OrderDate=4/20/1998 Total=1692.00
+ Orders: OrderID=11067 OrderDate=5/4/1998 Total=86.85
+CustomerID=DUMON CompanyName=Du monde entier Address=67, rue
des Cinquante Otages City=Nantes Region=null
PostalCode=44000 Country=France Phone=40.67.88.88
Fax=40.67.89.89 Orders=...
+ Orders: OrderID=10311 OrderDate=9/20/1996 Total=268.80
+ Orders: OrderID=10609 OrderDate=7/24/1997 Total=424.00
+ Orders: OrderID=10683 OrderDate=9/26/1997 Total=63.00
+ Orders: OrderID=10890 OrderDate=2/16/1998 Total=860.10
+CustomerID=EASTC CompanyName=Eastern Connection Address=35 King
George City=London Region=null PostalCode=WX3 6FW
Country=UK Phone=(171) 555-0297 Fax=(171) 555-3373 Orders=...
+ Orders: OrderID=10364 OrderDate=11/26/1996 Total=950.00
+ Orders: OrderID=10400 OrderDate=1/1/1997 Total=3063.00
+ Orders: OrderID=10532 OrderDate=5/9/1997 Total=796.35
+ Orders: OrderID=10726 OrderDate=11/3/1997 Total=655.00
+ Orders: OrderID=10987 OrderDate=3/31/1998 Total=2772.00
+ Orders: OrderID=11024 OrderDate=4/15/1998 Total=1966.81
+ Orders: OrderID=11047 OrderDate=4/24/1998 Total=817.88
+ Orders: OrderID=11056 OrderDate=4/28/1998 Total=3740.00
+CustomerID=ERNSH CompanyName=Ernst Handel Address=Kirchgasse
6 City=Graz Region=null PostalCode=8010
Country=Austria Phone=7675-3425 Fax=7675-3426 Orders=...
+ Orders: OrderID=10258 OrderDate=7/17/1996 Total=1614.88
+ Orders: OrderID=10263 OrderDate=7/23/1996 Total=1873.80
+ Orders: OrderID=10351 OrderDate=11/11/1996 Total=5398.72
+ Orders: OrderID=10368 OrderDate=11/29/1996 Total=1689.78
+ Orders: OrderID=10382 OrderDate=12/13/1996 Total=2900.00
+ Orders: OrderID=10390 OrderDate=12/23/1996 Total=2090.88
+ Orders: OrderID=10402 OrderDate=1/2/1997 Total=2713.50
+ Orders: OrderID=10403 OrderDate=1/3/1997 Total=855.02
+ Orders: OrderID=10430 OrderDate=1/30/1997 Total=4899.20
+ Orders: OrderID=10442 OrderDate=2/11/1997 Total=1792.00
+ Orders: OrderID=10514 OrderDate=4/22/1997 Total=8623.45
+ Orders: OrderID=10571 OrderDate=6/17/1997 Total=550.59
+ Orders: OrderID=10595 OrderDate=7/10/1997 Total=4725.00
+ Orders: OrderID=10633 OrderDate=8/15/1997 Total=5510.59
+ Orders: OrderID=10667 OrderDate=9/12/1997 Total=1536.80
+ Orders: OrderID=10698 OrderDate=10/9/1997 Total=3436.44
+ Orders: OrderID=10764 OrderDate=12/3/1997 Total=2286.00
+ Orders: OrderID=10771 OrderDate=12/10/1997 Total=344.00
+ Orders: OrderID=10773 OrderDate=12/11/1997 Total=2030.40
+ Orders: OrderID=10776 OrderDate=12/15/1997 Total=6635.28
+ Orders: OrderID=10795 OrderDate=12/24/1997 Total=2158.00
+ Orders: OrderID=10836 OrderDate=1/16/1998 Total=4705.50
+ Orders: OrderID=10854 OrderDate=1/27/1998 Total=2966.50
+ Orders: OrderID=10895 OrderDate=2/18/1998 Total=6379.40
+ Orders: OrderID=10968 OrderDate=3/23/1998 Total=1408.00
+ Orders: OrderID=10979 OrderDate=3/26/1998 Total=4813.50
+ Orders: OrderID=10990 OrderDate=4/1/1998 Total=4288.85
+ Orders: OrderID=11008 OrderDate=4/8/1998 Total=4680.90
+ Orders: OrderID=11017 OrderDate=4/13/1998 Total=6750.00
+ Orders: OrderID=11072 OrderDate=5/5/1998 Total=5218.00
+CustomerID=FAMIA CompanyName=Familia Arquibaldo Address=Rua Orós,
92 City=São Paulo Region=SP PostalCode=05442-030
Country=Brazil Phone=(11) 555-9857 Fax=null Orders=...
+ Orders: OrderID=10347 OrderDate=11/6/1996 Total=814.42
+ Orders: OrderID=10386 OrderDate=12/18/1996 Total=166.00
+ Orders: OrderID=10414 OrderDate=1/14/1997 Total=224.83
+ Orders: OrderID=10512 OrderDate=4/21/1997 Total=525.30
+ Orders: OrderID=10581 OrderDate=6/26/1997 Total=310.00
+ Orders: OrderID=10650 OrderDate=8/29/1997 Total=1779.20
+ Orders: OrderID=10725 OrderDate=10/31/1997 Total=287.80
+CustomerID=FISSA CompanyName=FISSA Fabrica Inter. Salchichas
S.A. Address=C/ Moralzarzal, 86 City=Madrid Region=null
PostalCode=28034 Country=Spain Phone=(91) 555 94 44 Fax=(91)
555 55 93 Orders=...
+CustomerID=FOLIG CompanyName=Folies gourmandes Address=184,
chaussée de Tournai City=Lille Region=null
PostalCode=59000 Country=France Phone=20.16.10.16
Fax=20.16.10.17 Orders=...
+ Orders: OrderID=10408 OrderDate=1/8/1997 Total=1622.40
+ Orders: OrderID=10480 OrderDate=3/20/1997 Total=756.00
+ Orders: OrderID=10634 OrderDate=8/15/1997 Total=4985.50
+ Orders: OrderID=10763 OrderDate=12/3/1997 Total=616.00
+ Orders: OrderID=10789 OrderDate=12/22/1997 Total=3687.00
+CustomerID=FOLKO CompanyName=Folk och fä HB Address=Åkergatan
24 City=Bräcke Region=null PostalCode=S-844 67
Country=Sweden Phone=0695-34 67 21 Fax=null Orders=...
+ Orders: OrderID=10264 OrderDate=7/24/1996 Total=695.62
+ Orders: OrderID=10327 OrderDate=10/11/1996 Total=1810.00
+ Orders: OrderID=10378 OrderDate=12/10/1996 Total=103.20
+ Orders: OrderID=10434 OrderDate=2/3/1997 Total=321.12
+ Orders: OrderID=10460 OrderDate=2/28/1997 Total=176.10
+ Orders: OrderID=10533 OrderDate=5/12/1997 Total=2222.20
+ Orders: OrderID=10561 OrderDate=6/6/1997 Total=2844.50
+ Orders: OrderID=10703 OrderDate=10/14/1997 Total=2545.00
+ Orders: OrderID=10762 OrderDate=12/2/1997 Total=4337.00
+ Orders: OrderID=10774 OrderDate=12/11/1997 Total=868.75
+ Orders: OrderID=10824 OrderDate=1/9/1998 Total=250.80
+ Orders: OrderID=10880 OrderDate=2/10/1998 Total=1500.00
+ Orders: OrderID=10902 OrderDate=2/23/1998 Total=863.43
+ Orders: OrderID=10955 OrderDate=3/17/1998 Total=74.40
+ Orders: OrderID=10977 OrderDate=3/26/1998 Total=2233.00
+ Orders: OrderID=10980 OrderDate=3/27/1998 Total=248.00
+ Orders: OrderID=10993 OrderDate=4/1/1998 Total=4895.44
+ Orders: OrderID=11001 OrderDate=4/6/1998 Total=2769.00
+ Orders: OrderID=11050 OrderDate=4/27/1998 Total=810.00
+CustomerID=FRANK CompanyName=Frankenversand Address=Berliner
Platz 43 City=München Region=null PostalCode=80805
Country=Germany Phone=089-0877310 Fax=089-0877451
Orders=...
+ Orders: OrderID=10267 OrderDate=7/29/1996 Total=3536.60
+ Orders: OrderID=10337 OrderDate=10/24/1996 Total=2467.00
+ Orders: OrderID=10342 OrderDate=10/30/1996 Total=1840.64
+ Orders: OrderID=10396 OrderDate=12/27/1996 Total=1903.80
+ Orders: OrderID=10488 OrderDate=3/27/1997 Total=1512.00
+ Orders: OrderID=10560 OrderDate=6/6/1997 Total=1072.42
+ Orders: OrderID=10623 OrderDate=8/7/1997 Total=1336.95
+ Orders: OrderID=10653 OrderDate=9/2/1997 Total=1083.15
+ Orders: OrderID=10670 OrderDate=9/16/1997 Total=2301.75
+ Orders: OrderID=10675 OrderDate=9/19/1997 Total=1423.00
+ Orders: OrderID=10717 OrderDate=10/24/1997 Total=1270.75
+ Orders: OrderID=10791 OrderDate=12/23/1997 Total=1829.76
+ Orders: OrderID=10859 OrderDate=1/29/1998 Total=1078.69
+ Orders: OrderID=10929 OrderDate=3/5/1998 Total=1174.75
+ Orders: OrderID=11012 OrderDate=4/9/1998 Total=2825.30
+CustomerID=FRANR CompanyName=France restauration
Address=54, rue Royale City=Nantes Region=null
PostalCode=44000 Country=France Phone=40.32.21.21
Fax=40.32.21.20 Orders=...
+ Orders: OrderID=10671 OrderDate=9/17/1997 Total=920.10
+ Orders: OrderID=10860 OrderDate=1/29/1998 Total=519.00
+ Orders: OrderID=10971 OrderDate=3/24/1998 Total=1733.06
+CustomerID=FRANS CompanyName=Franchi S.p.A. Address=Via Monte
Bianco 34 City=Torino Region=null PostalCode=10100
Country=Italy Phone=011-4988260 Fax=011-4988261 Orders=...
+ Orders: OrderID=10422 OrderDate=1/22/1997 Total=49.80
+ Orders: OrderID=10710 OrderDate=10/20/1997 Total=93.50
+ Orders: OrderID=10753 OrderDate=11/25/1997 Total=88.00
+ Orders: OrderID=10807 OrderDate=12/31/1997 Total=18.40
+ Orders: OrderID=11026 OrderDate=4/15/1998 Total=1030.00
+ Orders: OrderID=11060 OrderDate=4/30/1998 Total=266.00
+CustomerID=FURIB CompanyName=Furia Bacalhau e Frutos do Mar
Address=Jardim das rosas n. 32 City=Lisboa Region=null
PostalCode=1675 Country=Portugal Phone=(1) 354-2534
Fax=(1) 354-2535 Orders=...
+ Orders: OrderID=10328 OrderDate=10/14/1996 Total=1168.00
+ Orders: OrderID=10352 OrderDate=11/12/1996 Total=136.30
+ Orders: OrderID=10464 OrderDate=3/4/1997 Total=1609.28
+ Orders: OrderID=10491 OrderDate=3/31/1997 Total=259.50
+ Orders: OrderID=10551 OrderDate=5/28/1997 Total=1677.30
+ Orders: OrderID=10604 OrderDate=7/18/1997 Total=230.85
+ Orders: OrderID=10664 OrderDate=9/10/1997 Total=1288.39
+ Orders: OrderID=10963 OrderDate=3/19/1998 Total=57.80
+CustomerID=GALED CompanyName=Galería del gastrónomo
Address=Rambla de Cataluña, 23 City=Barcelona Region=null
PostalCode=08022 Country=Spain Phone=(93) 203 4560 Fax=(93)
203 4561 Orders=...
+ Orders: OrderID=10366 OrderDate=11/28/1996 Total=136.00
+ Orders: OrderID=10426 OrderDate=1/27/1997 Total=338.20
+ Orders: OrderID=10568 OrderDate=6/13/1997 Total=155.00
+ Orders: OrderID=10887 OrderDate=2/13/1998 Total=70.00
+ Orders: OrderID=10928 OrderDate=3/5/1998 Total=137.50
+CustomerID=GODOS CompanyName=Godos Cocina Típica Address=C/
Romero, 33 City=Sevilla Region=null PostalCode=41101
Country=Spain Phone=(95) 555 82 82 Fax=null Orders=...
+ Orders: OrderID=10303 OrderDate=9/11/1996 Total=1117.80
+ Orders: OrderID=10550 OrderDate=5/28/1997 Total=683.30
+ Orders: OrderID=10629 OrderDate=8/12/1997 Total=2775.05
+ Orders: OrderID=10872 OrderDate=2/5/1998 Total=2058.46
+ Orders: OrderID=10874 OrderDate=2/6/1998 Total=310.00
+ Orders: OrderID=10888 OrderDate=2/16/1998 Total=605.00
+ Orders: OrderID=10911 OrderDate=2/26/1998 Total=858.00
+ Orders: OrderID=10948 OrderDate=3/13/1998 Total=2362.25
+ Orders: OrderID=11009 OrderDate=4/8/1998 Total=616.50
+ Orders: OrderID=11037 OrderDate=4/21/1998 Total=60.00
+CustomerID=GOURL CompanyName=Gourmet Lanchonetes
Address=Av. Brasil, 442 City=Campinas Region=SP
PostalCode=04876-786 Country=Brazil Phone=(11) 555-9482
Fax=null Orders=...
+ Orders: OrderID=10423 OrderDate=1/23/1997 Total=1020.00
+ Orders: OrderID=10652 OrderDate=9/1/1997 Total=318.84
+ Orders: OrderID=10685 OrderDate=9/29/1997 Total=801.10
+ Orders: OrderID=10709 OrderDate=10/17/1997 Total=3424.00
+ Orders: OrderID=10734 OrderDate=11/7/1997 Total=1498.35
+ Orders: OrderID=10777 OrderDate=12/15/1997 Total=224.00
+ Orders: OrderID=10790 OrderDate=12/22/1997 Total=722.50
+ Orders: OrderID=10959 OrderDate=3/18/1998 Total=131.75
+ Orders: OrderID=11049 OrderDate=4/24/1998 Total=273.60
+CustomerID=GREAL CompanyName=Great Lakes Food Market
Address=2732 Baker Blvd. City=Eugene Region=OR
PostalCode=97403 Country=USA Phone=(503) 555-7555
Fax=null Orders=...
+ Orders: OrderID=10528 OrderDate=5/6/1997 Total=392.20
+ Orders: OrderID=10589 OrderDate=7/4/1997 Total=72.00
+ Orders: OrderID=10616 OrderDate=7/31/1997 Total=4807.00
+ Orders: OrderID=10617 OrderDate=7/31/1997 Total=1402.50
+ Orders: OrderID=10656 OrderDate=9/4/1997 Total=604.22
+ Orders: OrderID=10681 OrderDate=9/25/1997 Total=1287.40
+ Orders: OrderID=10816 OrderDate=1/6/1998 Total=8446.45
+ Orders: OrderID=10936 OrderDate=3/9/1998 Total=456.00
+ Orders: OrderID=11006 OrderDate=4/7/1998 Total=329.68
+ Orders: OrderID=11040 OrderDate=4/22/1998 Total=200.00
+ Orders: OrderID=11061 OrderDate=4/30/1998 Total=510.00
+CustomerID=GROSR CompanyName=GROSELLA-Restaurante Address=5ª
Ave. Los Palos Grandes City=Caracas Region=DF
PostalCode=1081 Country=Venezuela Phone=(2) 283-2951
Fax=(2) 283-3397 Orders=...
+ Orders: OrderID=10268 OrderDate=7/30/1996 Total=1101.20
+ Orders: OrderID=10785 OrderDate=12/18/1997 Total=387.50
+CustomerID=HANAR CompanyName=Hanari Carnes Address=Rua do
Paço, 67 City=Rio de Janeiro Region=RJ
PostalCode=05454-876 Country=Brazil Phone=(21) 555-0091 Fax=(21)
555-8765 Orders=...
+ Orders: OrderID=10250 OrderDate=7/8/1996 Total=1552.60
+ Orders: OrderID=10253 OrderDate=7/10/1996 Total=1444.80
+ Orders: OrderID=10541 OrderDate=5/19/1997 Total=1946.52
+ Orders: OrderID=10645 OrderDate=8/26/1997 Total=1535.00
+ Orders: OrderID=10690 OrderDate=10/2/1997 Total=862.50
+ Orders: OrderID=10770 OrderDate=12/9/1997 Total=236.25
+ Orders: OrderID=10783 OrderDate=12/18/1997 Total=1442.50
+ Orders: OrderID=10886 OrderDate=2/13/1998 Total=3127.50
+ Orders: OrderID=10903 OrderDate=2/24/1998 Total=932.05
+ Orders: OrderID=10922 OrderDate=3/3/1998 Total=742.50
+ Orders: OrderID=10925 OrderDate=3/4/1998 Total=475.15
+ Orders: OrderID=10981 OrderDate=3/27/1998 Total=15810.00
+ Orders: OrderID=11022 OrderDate=4/14/1998 Total=1402.00
+ Orders: OrderID=11052 OrderDate=4/27/1998 Total=1332.00
+CustomerID=HILAA CompanyName=HILARIÓN-Abastos Address=Carrera 22
con Ave. Carlos Soublette #8-35 City=San Cristóbal
Region=Táchira PostalCode=5022 Country=Venezuela Phone=(5)
555-1340 Fax=(5) 555-1948 Orders=...
+ Orders: OrderID=10257 OrderDate=7/16/1996 Total=1119.90
+ Orders: OrderID=10395 OrderDate=12/26/1996 Total=2122.92
+ Orders: OrderID=10476 OrderDate=3/17/1997 Total=180.48
+ Orders: OrderID=10486 OrderDate=3/26/1997 Total=1272.00
+ Orders: OrderID=10490 OrderDate=3/31/1997 Total=3163.20
+ Orders: OrderID=10498 OrderDate=4/7/1997 Total=575.00
+ Orders: OrderID=10552 OrderDate=5/29/1997 Total=880.50
+ Orders: OrderID=10601 OrderDate=7/16/1997 Total=2285.00
+ Orders: OrderID=10613 OrderDate=7/29/1997 Total=353.20
+ Orders: OrderID=10641 OrderDate=8/22/1997 Total=2054.00
+ Orders: OrderID=10705 OrderDate=10/15/1997 Total=378.00
+ Orders: OrderID=10796 OrderDate=12/25/1997 Total=2341.36
+ Orders: OrderID=10863 OrderDate=2/2/1998 Total=441.15
+ Orders: OrderID=10901 OrderDate=2/23/1998 Total=934.50
+ Orders: OrderID=10957 OrderDate=3/18/1998 Total=1762.70
+ Orders: OrderID=10960 OrderDate=3/19/1998 Total=265.35
+ Orders: OrderID=10976 OrderDate=3/25/1998 Total=912.00
+ Orders: OrderID=11055 OrderDate=4/28/1998 Total=1727.50
+CustomerID=HUNGC CompanyName=Hungry Coyote Import Store
Address=City Center Plaza, 516 Main St. City=Elgin
Region=OR PostalCode=97827 Country=USA Phone=(503)
555-6874 Fax=(503) 555-2376 Orders=...
+ Orders: OrderID=10375 OrderDate=12/6/1996 Total=338.00
+ Orders: OrderID=10394 OrderDate=12/25/1996 Total=442.00
+ Orders: OrderID=10415 OrderDate=1/15/1997 Total=102.40
+ Orders: OrderID=10600 OrderDate=7/16/1997 Total=479.80
+ Orders: OrderID=10660 OrderDate=9/8/1997 Total=1701.00
+CustomerID=HUNGO CompanyName=Hungry Owl All-Night Grocers
Address=8 Johnstown Road City=Cork Region=Co. Cork
PostalCode=null Country=Ireland Phone=2967 542 Fax=2967
3333 Orders=...
+ Orders: OrderID=10298 OrderDate=9/5/1996 Total=2645.00
+ Orders: OrderID=10309 OrderDate=9/19/1996 Total=1762.00
+ Orders: OrderID=10335 OrderDate=10/22/1996 Total=2036.16
+ Orders: OrderID=10373 OrderDate=12/5/1996 Total=1366.40
+ Orders: OrderID=10380 OrderDate=12/12/1996 Total=1313.82
+ Orders: OrderID=10429 OrderDate=1/29/1997 Total=1441.38
+ Orders: OrderID=10503 OrderDate=4/11/1997 Total=2048.50
+ Orders: OrderID=10516 OrderDate=4/24/1997 Total=2381.05
+ Orders: OrderID=10567 OrderDate=6/12/1997 Total=2519.00
+ Orders: OrderID=10646 OrderDate=8/27/1997 Total=1446.00
+ Orders: OrderID=10661 OrderDate=9/9/1997 Total=562.60
+ Orders: OrderID=10687 OrderDate=9/30/1997 Total=4960.90
+ Orders: OrderID=10701 OrderDate=10/13/1997 Total=2864.50
+ Orders: OrderID=10712 OrderDate=10/21/1997 Total=1233.48
+ Orders: OrderID=10736 OrderDate=11/11/1997 Total=997.00
+ Orders: OrderID=10897 OrderDate=2/19/1998 Total=10835.24
+ Orders: OrderID=10912 OrderDate=2/26/1998 Total=6200.55
+ Orders: OrderID=10985 OrderDate=3/30/1998 Total=2023.38
+ Orders: OrderID=11063 OrderDate=4/30/1998 Total=1342.95
+CustomerID=ISLAT CompanyName=Island Trading Address=Garden
House, Crowther Way City=Cowes Region=Isle of Wight
PostalCode=PO31 7PJ Country=UK Phone=(198) 555-8888
Fax=null Orders=...
+ Orders: OrderID=10315 OrderDate=9/26/1996 Total=516.80
+ Orders: OrderID=10318 OrderDate=10/1/1996 Total=240.40
+ Orders: OrderID=10321 OrderDate=10/3/1996 Total=144.00
+ Orders: OrderID=10473 OrderDate=3/13/1997 Total=230.40
+ Orders: OrderID=10621 OrderDate=8/5/1997 Total=758.50
+ Orders: OrderID=10674 OrderDate=9/18/1997 Total=45.00
+ Orders: OrderID=10749 OrderDate=11/20/1997 Total=1080.00
+ Orders: OrderID=10798 OrderDate=12/26/1997 Total=446.60
+ Orders: OrderID=10829 OrderDate=1/13/1998 Total=1764.00
+ Orders: OrderID=10933 OrderDate=3/6/1998 Total=920.60
+CustomerID=KOENE CompanyName=Königlich Essen Address=Maubelstr.
90 City=Brandenburg Region=null PostalCode=14776
Country=Germany Phone=0555-09876 Fax=null Orders=...
+ Orders: OrderID=10323 OrderDate=10/7/1996 Total=164.40
+ Orders: OrderID=10325 OrderDate=10/9/1996 Total=1497.00
+ Orders: OrderID=10456 OrderDate=2/25/1997 Total=557.60
+ Orders: OrderID=10457 OrderDate=2/25/1997 Total=1584.00
+ Orders: OrderID=10468 OrderDate=3/7/1997 Total=717.60
+ Orders: OrderID=10506 OrderDate=4/15/1997 Total=415.80
+ Orders: OrderID=10542 OrderDate=5/20/1997 Total=469.11
+ Orders: OrderID=10630 OrderDate=8/13/1997 Total=903.60
+ Orders: OrderID=10718 OrderDate=10/27/1997 Total=3463.00
+ Orders: OrderID=10799 OrderDate=12/26/1997 Total=1553.50
+ Orders: OrderID=10817 OrderDate=1/6/1998 Total=10952.84
+ Orders: OrderID=10849 OrderDate=1/23/1998 Total=967.82
+ Orders: OrderID=10893 OrderDate=2/18/1998 Total=5502.11
+ Orders: OrderID=11028 OrderDate=4/16/1998 Total=2160.00
+CustomerID=LACOR CompanyName=La corne d'abondance
Address=67, avenue de l'Europe City=Versailles Region=null
PostalCode=78000 Country=France Phone=30.59.84.10
Fax=30.59.85.11 Orders=...
+ Orders: OrderID=10858 OrderDate=1/29/1998 Total=649.00
+ Orders: OrderID=10927 OrderDate=3/5/1998 Total=800.00
+ Orders: OrderID=10972 OrderDate=3/24/1998 Total=251.50
+ Orders: OrderID=10973 OrderDate=3/24/1998 Total=291.55
+CustomerID=LAMAI CompanyName=La maison d'Asie Address=1 rue
Alsace-Lorraine City=Toulouse Region=null PostalCode=31000
Country=France Phone=61.77.61.10 Fax=61.77.61.11 Orders=...
+ Orders: OrderID=10350 OrderDate=11/11/1996 Total=642.06
+ Orders: OrderID=10358 OrderDate=11/20/1996 Total=429.40
+ Orders: OrderID=10371 OrderDate=12/3/1996 Total=72.96
+ Orders: OrderID=10413 OrderDate=1/14/1997 Total=2123.20
+ Orders: OrderID=10425 OrderDate=1/24/1997 Total=360.00
+ Orders: OrderID=10454 OrderDate=2/21/1997 Total=331.20
+ Orders: OrderID=10493 OrderDate=4/2/1997 Total=608.40
+ Orders: OrderID=10500 OrderDate=4/9/1997 Total=523.26
+ Orders: OrderID=10610 OrderDate=7/25/1997 Total=299.25
+ Orders: OrderID=10631 OrderDate=8/14/1997 Total=55.80
+ Orders: OrderID=10787 OrderDate=12/19/1997 Total=2622.76
+ Orders: OrderID=10832 OrderDate=1/14/1998 Total=475.11
+ Orders: OrderID=10923 OrderDate=3/3/1998 Total=748.80
+ Orders: OrderID=11051 OrderDate=4/27/1998 Total=36.00
+CustomerID=LAUGB CompanyName=Laughing Bacchus Wine Cellars
Address=1900 Oak St. City=Vancouver Region=BC PostalCode=V3F
2K1 Country=Canada Phone=(604) 555-3392 Fax=(604) 555-7293
Orders=...
+ Orders: OrderID=10495 OrderDate=4/3/1997 Total=278.00
+ Orders: OrderID=10620 OrderDate=8/5/1997 Total=57.50
+ Orders: OrderID=10810 OrderDate=1/1/1998 Total=187.00
+CustomerID=LAZYK CompanyName=Lazy K Kountry Store Address=12
Orchestra Terrace City=Walla Walla Region=WA
PostalCode=99362 Country=USA Phone=(509) 555-7969 Fax=(509)
555-6221 Orders=...
+ Orders: OrderID=10482 OrderDate=3/21/1997 Total=147.00
+ Orders: OrderID=10545 OrderDate=5/22/1997 Total=210.00
+CustomerID=LEHMS CompanyName=Lehmanns Marktstand
Address=Magazinweg 7 City=Frankfurt a.M. Region=null
PostalCode=60528 Country=Germany Phone=069-0245984
Fax=069-0245874 Orders=...
+ Orders: OrderID=10279 OrderDate=8/13/1996 Total=351.00
+ Orders: OrderID=10284 OrderDate=8/19/1996 Total=1170.38
+ Orders: OrderID=10343 OrderDate=10/31/1996 Total=1584.00
+ Orders: OrderID=10497 OrderDate=4/4/1997 Total=1380.60
+ Orders: OrderID=10522 OrderDate=4/30/1997 Total=2318.24
+ Orders: OrderID=10534 OrderDate=5/12/1997 Total=465.70
+ Orders: OrderID=10536 OrderDate=5/14/1997 Total=1645.00
+ Orders: OrderID=10557 OrderDate=6/3/1997 Total=1152.50
+ Orders: OrderID=10592 OrderDate=7/8/1997 Total=516.47
+ Orders: OrderID=10593 OrderDate=7/9/1997 Total=1994.40
+ Orders: OrderID=10772 OrderDate=12/10/1997 Total=3603.22
+ Orders: OrderID=10862 OrderDate=1/30/1998 Total=581.00
+ Orders: OrderID=10891 OrderDate=2/17/1998 Total=368.93
+ Orders: OrderID=10934 OrderDate=3/9/1998 Total=500.00
+ Orders: OrderID=11070 OrderDate=5/5/1998 Total=1629.98
+CustomerID=LETSS CompanyName=Let's Stop N Shop Address=87 Polk
St. Suite 5 City=San Francisco Region=CA
PostalCode=94117 Country=USA Phone=(415) 555-5938
Fax=null Orders=...
+ Orders: OrderID=10579 OrderDate=6/25/1997 Total=317.75
+ Orders: OrderID=10719 OrderDate=10/27/1997 Total=844.25
+ Orders: OrderID=10735 OrderDate=11/10/1997 Total=536.40
+ Orders: OrderID=10884 OrderDate=2/12/1998 Total=1378.07
+CustomerID=LILAS CompanyName=LILA-Supermercado Address=Carrera 52
con Ave. Bolívar #65-98 Llano Largo City=Barquisimeto
Region=Lara PostalCode=3508 Country=Venezuela Phone=(9)
331-6954 Fax=(9) 331-7256 Orders=...
+ Orders: OrderID=10283 OrderDate=8/16/1996 Total=1414.80
+ Orders: OrderID=10296 OrderDate=9/3/1996 Total=1050.60
+ Orders: OrderID=10330 OrderDate=10/16/1996 Total=1649.00
+ Orders: OrderID=10357 OrderDate=11/19/1996 Total=1167.68
+ Orders: OrderID=10381 OrderDate=12/12/1996 Total=112.00
+ Orders: OrderID=10461 OrderDate=2/28/1997 Total=1538.70
+ Orders: OrderID=10499 OrderDate=4/8/1997 Total=1412.00
+ Orders: OrderID=10543 OrderDate=5/21/1997 Total=1504.50
+ Orders: OrderID=10780 OrderDate=12/16/1997 Total=720.00
+ Orders: OrderID=10823 OrderDate=1/9/1998 Total=2826.00
+ Orders: OrderID=10899 OrderDate=2/20/1998 Total=122.40
+ Orders: OrderID=10997 OrderDate=4/3/1998 Total=1885.00
+ Orders: OrderID=11065 OrderDate=5/1/1998 Total=189.42
+ Orders: OrderID=11071 OrderDate=5/5/1998 Total=484.50
+CustomerID=LINOD CompanyName=LINO-Delicateses Address=Ave. 5 de
Mayo Porlamar City=I. de Margarita Region=Nueva Esparta
PostalCode=4980 Country=Venezuela Phone=(8) 34-56-12
Fax=(8) 34-93-93 Orders=...
+ Orders: OrderID=10405 OrderDate=1/6/1997 Total=400.00
+ Orders: OrderID=10485 OrderDate=3/25/1997 Total=1584.00
+ Orders: OrderID=10638 OrderDate=8/20/1997 Total=2720.05
+ Orders: OrderID=10697 OrderDate=10/8/1997 Total=805.42
+ Orders: OrderID=10729 OrderDate=11/4/1997 Total=1850.00
+ Orders: OrderID=10811 OrderDate=1/2/1998 Total=852.00
+ Orders: OrderID=10838 OrderDate=1/19/1998 Total=1938.38
+ Orders: OrderID=10840 OrderDate=1/19/1998 Total=211.20
+ Orders: OrderID=10919 OrderDate=3/2/1998 Total=1122.80
+ Orders: OrderID=10954 OrderDate=3/17/1998 Total=1659.54
+ Orders: OrderID=11014 OrderDate=4/10/1998 Total=243.18
+ Orders: OrderID=11039 OrderDate=4/21/1998 Total=3090.00
+CustomerID=LONEP CompanyName=Lonesome Pine Restaurant Address=89
Chiaroscuro Rd. City=Portland Region=OR
PostalCode=97219 Country=USA Phone=(503) 555-9573 Fax=(503)
555-9646 Orders=...
+ Orders: OrderID=10307 OrderDate=9/17/1996 Total=424.00
+ Orders: OrderID=10317 OrderDate=9/30/1996 Total=288.00
+ Orders: OrderID=10544 OrderDate=5/21/1997 Total=417.20
+ Orders: OrderID=10662 OrderDate=9/9/1997 Total=125.00
+ Orders: OrderID=10665 OrderDate=9/11/1997 Total=1295.00
+ Orders: OrderID=10867 OrderDate=2/3/1998 Total=98.40
+ Orders: OrderID=10883 OrderDate=2/12/1998 Total=36.00
+ Orders: OrderID=11018 OrderDate=4/13/1998 Total=1575.00
+CustomerID=MAGAA CompanyName=Magazzini Alimentari Riuniti
Address=Via Ludovico il Moro 22 City=Bergamo Region=null
PostalCode=24100 Country=Italy Phone=035-640230
Fax=035-640231 Orders=...
+ Orders: OrderID=10275 OrderDate=8/7/1996 Total=291.84
+ Orders: OrderID=10300 OrderDate=9/9/1996 Total=608.00
+ Orders: OrderID=10404 OrderDate=1/3/1997 Total=1591.25
+ Orders: OrderID=10467 OrderDate=3/6/1997 Total=235.20
+ Orders: OrderID=10635 OrderDate=8/18/1997 Total=1326.22
+ Orders: OrderID=10754 OrderDate=11/25/1997 Total=55.20
+ Orders: OrderID=10784 OrderDate=12/18/1997 Total=1488.00
+ Orders: OrderID=10818 OrderDate=1/7/1998 Total=833.00
+ Orders: OrderID=10939 OrderDate=3/10/1998 Total=637.50
+ Orders: OrderID=10950 OrderDate=3/16/1998 Total=110.00
+CustomerID=MAISD CompanyName=Maison Dewey Address=Rue
Joseph-Bens 532 City=Bruxelles Region=null PostalCode=B-1180
Country=Belgium Phone=(02) 201 24 67 Fax=(02) 201 24 68
Orders=...
+ Orders: OrderID=10529 OrderDate=5/7/1997 Total=946.00
+ Orders: OrderID=10649 OrderDate=8/28/1997 Total=1434.00
+ Orders: OrderID=10760 OrderDate=12/1/1997 Total=2917.00
+ Orders: OrderID=10892 OrderDate=2/17/1998 Total=2090.00
+ Orders: OrderID=10896 OrderDate=2/19/1998 Total=750.50
+ Orders: OrderID=10978 OrderDate=3/26/1998 Total=1303.20
+ Orders: OrderID=11004 OrderDate=4/7/1998 Total=295.38
+CustomerID=MEREP CompanyName=Mère Paillarde Address=43 rue St.
Laurent City=Montréal Region=Québec PostalCode=H1J 1C3
Country=Canada Phone=(514) 555-8054 Fax=(514) 555-8055 Orders=...
+ Orders: OrderID=10332 OrderDate=10/17/1996 Total=1786.88
+ Orders: OrderID=10339 OrderDate=10/28/1996 Total=3354.00
+ Orders: OrderID=10376 OrderDate=12/9/1996 Total=399.00
+ Orders: OrderID=10424 OrderDate=1/23/1997 Total=9194.56
+ Orders: OrderID=10439 OrderDate=2/7/1997 Total=1078.00
+ Orders: OrderID=10505 OrderDate=4/14/1997 Total=147.90
+ Orders: OrderID=10565 OrderDate=6/11/1997 Total=639.90
+ Orders: OrderID=10570 OrderDate=6/17/1997 Total=2465.25
+ Orders: OrderID=10590 OrderDate=7/7/1997 Total=1101.00
+ Orders: OrderID=10605 OrderDate=7/21/1997 Total=4109.70
+ Orders: OrderID=10618 OrderDate=8/1/1997 Total=2697.50
+ Orders: OrderID=10619 OrderDate=8/4/1997 Total=1260.00
+ Orders: OrderID=10724 OrderDate=10/30/1997 Total=638.50
+CustomerID=MORGK CompanyName=Morgenstern Gesundkost
Address=Heerstr. 22 City=Leipzig Region=null
PostalCode=04179 Country=Germany Phone=0342-023176
Fax=null Orders=...
+ Orders: OrderID=10277 OrderDate=8/9/1996 Total=1200.80
+ Orders: OrderID=10575 OrderDate=6/20/1997 Total=2147.40
+ Orders: OrderID=10699 OrderDate=10/9/1997 Total=114.00
+ Orders: OrderID=10779 OrderDate=12/16/1997 Total=1335.00
+ Orders: OrderID=10945 OrderDate=3/12/1998 Total=245.00
+CustomerID=NORTS CompanyName=North/South Address=South
House, 300 Queensbridge City=London Region=null PostalCode=SW7
1RZ Country=UK Phone=(171) 555-7733 Fax=(171) 555-2530
Orders=...
+ Orders: OrderID=10517 OrderDate=4/24/1997 Total=352.00
+ Orders: OrderID=10752 OrderDate=11/24/1997 Total=252.00
+ Orders: OrderID=11057 OrderDate=4/29/1998 Total=45.00
+CustomerID=OCEAN CompanyName=Océano Atlántico Ltda.
Address=Ing. Gustavo Moncada 8585, Piso 20-A City=Buenos Aires
Region=null PostalCode=1010 Country=Argentina Phone=(1)
135-5333 Fax=(1) 135-5535 Orders=...
+ Orders: OrderID=10409 OrderDate=1/9/1997 Total=319.20
+ Orders: OrderID=10531 OrderDate=5/8/1997 Total=110.00
+ Orders: OrderID=10898 OrderDate=2/20/1998 Total=30.00
+ Orders: OrderID=10958 OrderDate=3/18/1998 Total=781.00
+ Orders: OrderID=10986 OrderDate=3/30/1998 Total=2220.00
+CustomerID=OLDWO CompanyName=Old World Delicatessen
Address=2743 Bering St. City=Anchorage Region=AK
PostalCode=99508 Country=USA Phone=(907) 555-7584 Fax=(907)
555-2880 Orders=...
+ Orders: OrderID=10260 OrderDate=7/19/1996 Total=1504.65
+ Orders: OrderID=10305 OrderDate=9/13/1996 Total=3741.30
+ Orders: OrderID=10338 OrderDate=10/25/1996 Total=934.50
+ Orders: OrderID=10441 OrderDate=2/10/1997 Total=1755.00
+ Orders: OrderID=10594 OrderDate=7/9/1997 Total=565.50
+ Orders: OrderID=10680 OrderDate=9/24/1997 Total=1261.88
+ Orders: OrderID=10706 OrderDate=10/16/1997 Total=1893.00
+ Orders: OrderID=10855 OrderDate=1/27/1998 Total=2227.89
+ Orders: OrderID=10965 OrderDate=3/20/1998 Total=848.00
+ Orders: OrderID=11034 OrderDate=4/20/1998 Total=539.40
+CustomerID=OTTIK CompanyName=Ottilies Käseladen
Address=Mehrheimerstr. 369 City=Köln Region=null
PostalCode=50739 Country=Germany Phone=0221-0644327
Fax=0221-0765721 Orders=...
+ Orders: OrderID=10407 OrderDate=1/7/1997 Total=1194.00
+ Orders: OrderID=10508 OrderDate=4/16/1997 Total=240.00
+ Orders: OrderID=10554 OrderDate=5/30/1997 Total=1728.52
+ Orders: OrderID=10580 OrderDate=6/26/1997 Total=1013.74
+ Orders: OrderID=10684 OrderDate=9/26/1997 Total=1768.00
+ Orders: OrderID=10766 OrderDate=12/5/1997 Total=2310.00
+ Orders: OrderID=10833 OrderDate=1/15/1998 Total=906.93
+ Orders: OrderID=10999 OrderDate=4/3/1998 Total=1197.95
+ Orders: OrderID=11020 OrderDate=4/14/1998 Total=632.40
+CustomerID=PARIS CompanyName=Paris spécialités Address=265,
boulevard Charonne City=Paris Region=null
PostalCode=75012 Country=France Phone=(1) 42.34.22.66 Fax=(1)
42.34.22.77 Orders=...
+CustomerID=PERIC CompanyName=Pericles Comidas clásicas
Address=Calle Dr. Jorge Cash 321 City=México D.F.
Region=null PostalCode=05033 Country=Mexico Phone=(5)
552-3745 Fax=(5) 545-3745 Orders=...
+ Orders: OrderID=10322 OrderDate=10/4/1996 Total=112.00
+ Orders: OrderID=10354 OrderDate=11/14/1996 Total=568.80
+ Orders: OrderID=10474 OrderDate=3/13/1997 Total=1249.10
+ Orders: OrderID=10502 OrderDate=4/10/1997 Total=816.30
+ Orders: OrderID=10995 OrderDate=4/2/1998 Total=1196.00
+ Orders: OrderID=11073 OrderDate=5/5/1998 Total=300.00
+CustomerID=PICCO CompanyName=Piccolo und mehr Address=Geislweg
14 City=Salzburg Region=null PostalCode=5020
Country=Austria Phone=6562-9722 Fax=6562-9723 Orders=...
+ Orders: OrderID=10353 OrderDate=11/13/1996 Total=8593.28
+ Orders: OrderID=10392 OrderDate=12/24/1996 Total=1440.00
+ Orders: OrderID=10427 OrderDate=1/27/1997 Total=651.00
+ Orders: OrderID=10489 OrderDate=3/28/1997 Total=439.20
+ Orders: OrderID=10530 OrderDate=5/8/1997 Total=4180.00
+ Orders: OrderID=10597 OrderDate=7/11/1997 Total=718.08
+ Orders: OrderID=10686 OrderDate=9/30/1997 Total=1404.45
+ Orders: OrderID=10747 OrderDate=11/19/1997 Total=1912.85
+ Orders: OrderID=10844 OrderDate=1/21/1998 Total=735.00
+ Orders: OrderID=11053 OrderDate=4/27/1998 Total=3055.00
+CustomerID=PRINI CompanyName=Princesa Isabel Vinhos
Address=Estrada da saúde n. 58 City=Lisboa Region=null
PostalCode=1756 Country=Portugal Phone=(1) 356-5634
Fax=null Orders=...
+ Orders: OrderID=10336 OrderDate=10/23/1996 Total=285.12
+ Orders: OrderID=10397 OrderDate=12/27/1996 Total=716.72
+ Orders: OrderID=10433 OrderDate=2/3/1997 Total=851.20
+ Orders: OrderID=10477 OrderDate=3/17/1997 Total=558.00
+ Orders: OrderID=10808 OrderDate=1/1/1998 Total=1411.00
+ Orders: OrderID=11007 OrderDate=4/8/1998 Total=2633.90
+CustomerID=QUEDE CompanyName=Que Delícia Address=Rua da
Panificadora, 12 City=Rio de Janeiro Region=RJ
PostalCode=02389-673 Country=Brazil Phone=(21) 555-4252 Fax=(21)
555-4545 Orders=...
+ Orders: OrderID=10261 OrderDate=7/19/1996 Total=448.00
+ Orders: OrderID=10291 OrderDate=8/27/1996 Total=497.52
+ Orders: OrderID=10379 OrderDate=12/11/1996 Total=863.28
+ Orders: OrderID=10421 OrderDate=1/21/1997 Total=1194.27
+ Orders: OrderID=10587 OrderDate=7/2/1997 Total=807.38
+ Orders: OrderID=10647 OrderDate=8/27/1997 Total=636.00
+ Orders: OrderID=10720 OrderDate=10/28/1997 Total=550.00
+ Orders: OrderID=10794 OrderDate=12/24/1997 Total=314.76
+ Orders: OrderID=10989 OrderDate=3/31/1998 Total=1353.60
+CustomerID=QUEEN CompanyName=Queen Cozinha Address=Alameda
dos Canàrios, 891 City=São Paulo Region=SP
PostalCode=05487-020 Country=Brazil Phone=(11) 555-1189
Fax=null Orders=...
+ Orders: OrderID=10372 OrderDate=12/4/1996 Total=9210.90
+ Orders: OrderID=10406 OrderDate=1/7/1997 Total=1830.78
+ Orders: OrderID=10487 OrderDate=3/26/1997 Total=889.70
+ Orders: OrderID=10637 OrderDate=8/19/1997 Total=2761.94
+ Orders: OrderID=10659 OrderDate=9/5/1997 Total=1227.02
+ Orders: OrderID=10704 OrderDate=10/14/1997 Total=595.50
+ Orders: OrderID=10728 OrderDate=11/4/1997 Total=1296.75
+ Orders: OrderID=10786 OrderDate=12/19/1997 Total=1531.08
+ Orders: OrderID=10868 OrderDate=2/4/1998 Total=1920.60
+ Orders: OrderID=10913 OrderDate=2/26/1998 Total=768.75
+ Orders: OrderID=10914 OrderDate=2/27/1998 Total=537.50
+ Orders: OrderID=10961 OrderDate=3/19/1998 Total=1119.90
+ Orders: OrderID=11068 OrderDate=5/4/1998 Total=2027.08
+CustomerID=QUICK CompanyName=QUICK-Stop Address=Taucherstraße
10 City=Cunewalde Region=null PostalCode=01307
Country=Germany Phone=0372-035188 Fax=null Orders=...
+ Orders: OrderID=10273 OrderDate=8/5/1996 Total=2037.28
+ Orders: OrderID=10285 OrderDate=8/20/1996 Total=1743.36
+ Orders: OrderID=10286 OrderDate=8/21/1996 Total=3016.00
+ Orders: OrderID=10313 OrderDate=9/24/1996 Total=182.40
+ Orders: OrderID=10345 OrderDate=11/4/1996 Total=2924.80
+ Orders: OrderID=10361 OrderDate=11/22/1996 Total=2046.24
+ Orders: OrderID=10418 OrderDate=1/17/1997 Total=1814.80
+ Orders: OrderID=10451 OrderDate=2/19/1997 Total=3849.66
+ Orders: OrderID=10515 OrderDate=4/23/1997 Total=9921.30
+ Orders: OrderID=10527 OrderDate=5/5/1997 Total=1503.00
+ Orders: OrderID=10540 OrderDate=5/19/1997 Total=10191.70
+ Orders: OrderID=10549 OrderDate=5/27/1997 Total=3554.28
+ Orders: OrderID=10588 OrderDate=7/3/1997 Total=3120.00
+ Orders: OrderID=10658 OrderDate=9/5/1997 Total=4464.60
+ Orders: OrderID=10691 OrderDate=10/3/1997 Total=10164.80
+ Orders: OrderID=10694 OrderDate=10/6/1997 Total=4825.00
+ Orders: OrderID=10721 OrderDate=10/29/1997 Total=923.88
+ Orders: OrderID=10745 OrderDate=11/18/1997 Total=4529.80
+ Orders: OrderID=10765 OrderDate=12/4/1997 Total=1515.60
+ Orders: OrderID=10788 OrderDate=12/22/1997 Total=731.50
+ Orders: OrderID=10845 OrderDate=1/21/1998 Total=3812.70
+ Orders: OrderID=10865 OrderDate=2/2/1998 Total=16387.50
+ Orders: OrderID=10878 OrderDate=2/10/1998 Total=1539.00
+ Orders: OrderID=10938 OrderDate=3/10/1998 Total=2731.88
+ Orders: OrderID=10962 OrderDate=3/19/1998 Total=3584.00
+ Orders: OrderID=10991 OrderDate=4/1/1998 Total=2296.00
+ Orders: OrderID=10996 OrderDate=4/2/1998 Total=560.00
+ Orders: OrderID=11021 OrderDate=4/14/1998 Total=6306.24
+CustomerID=RANCH CompanyName=Rancho grande Address=Av. del
Libertador 900 City=Buenos Aires Region=null
PostalCode=1010 Country=Argentina Phone=(1) 123-5555
Fax=(1) 123-5556 Orders=...
+ Orders: OrderID=10448 OrderDate=2/17/1997 Total=443.40
+ Orders: OrderID=10716 OrderDate=10/24/1997 Total=706.00
+ Orders: OrderID=10828 OrderDate=1/13/1998 Total=932.00
+ Orders: OrderID=10916 OrderDate=2/27/1998 Total=686.70
+ Orders: OrderID=11019 OrderDate=4/13/1998 Total=76.00
+CustomerID=RATTC CompanyName=Rattlesnake Canyon Grocery
Address=2817 Milton Dr. City=Albuquerque Region=NM
PostalCode=87110 Country=USA Phone=(505) 555-5939 Fax=(505)
555-3620 Orders=...
+ Orders: OrderID=10262 OrderDate=7/22/1996 Total=584.00
+ Orders: OrderID=10272 OrderDate=8/2/1996 Total=1456.00
+ Orders: OrderID=10294 OrderDate=8/30/1996 Total=1887.60
+ Orders: OrderID=10314 OrderDate=9/25/1996 Total=2094.30
+ Orders: OrderID=10316 OrderDate=9/27/1996 Total=2835.00
+ Orders: OrderID=10346 OrderDate=11/5/1996 Total=1618.88
+ Orders: OrderID=10401 OrderDate=1/1/1997 Total=3868.60
+ Orders: OrderID=10479 OrderDate=3/19/1997 Total=10495.60
+ Orders: OrderID=10564 OrderDate=6/10/1997 Total=1234.05
+ Orders: OrderID=10569 OrderDate=6/16/1997 Total=890.00
+ Orders: OrderID=10598 OrderDate=7/14/1997 Total=2388.50
+ Orders: OrderID=10761 OrderDate=12/2/1997 Total=507.00
+ Orders: OrderID=10820 OrderDate=1/7/1998 Total=1140.00
+ Orders: OrderID=10852 OrderDate=1/26/1998 Total=2984.00
+ Orders: OrderID=10889 OrderDate=2/16/1998 Total=11380.00
+ Orders: OrderID=10988 OrderDate=3/31/1998 Total=3574.80
+ Orders: OrderID=11000 OrderDate=4/6/1998 Total=903.75
+ Orders: OrderID=11077 OrderDate=5/6/1998 Total=1255.72
+CustomerID=REGGC CompanyName=Reggiani Caseifici Address=Strada
Provinciale 124 City=Reggio Emilia Region=null
PostalCode=42100 Country=Italy Phone=0522-556721
Fax=0522-556722 Orders=...
+ Orders: OrderID=10288 OrderDate=8/23/1996 Total=80.10
+ Orders: OrderID=10428 OrderDate=1/28/1997 Total=192.00
+ Orders: OrderID=10443 OrderDate=2/12/1997 Total=517.44
+ Orders: OrderID=10562 OrderDate=6/9/1997 Total=488.70
+ Orders: OrderID=10586 OrderDate=7/2/1997 Total=23.80
+ Orders: OrderID=10655 OrderDate=9/3/1997 Total=154.40
+ Orders: OrderID=10727 OrderDate=11/3/1997 Total=1624.50
+ Orders: OrderID=10812 OrderDate=1/2/1998 Total=1692.80
+ Orders: OrderID=10908 OrderDate=2/26/1998 Total=663.10
+ Orders: OrderID=10942 OrderDate=3/11/1998 Total=560.00
+ Orders: OrderID=11010 OrderDate=4/9/1998 Total=645.00
+ Orders: OrderID=11062 OrderDate=4/30/1998 Total=406.40
+CustomerID=RICAR CompanyName=Ricardo Adocicados Address=Av.
Copacabana, 267 City=Rio de Janeiro Region=RJ
PostalCode=02389-890 Country=Brazil Phone=(21) 555-3412
Fax=null Orders=...
+ Orders: OrderID=10287 OrderDate=8/22/1996 Total=819.00
+ Orders: OrderID=10299 OrderDate=9/6/1996 Total=349.50
+ Orders: OrderID=10447 OrderDate=2/14/1997 Total=914.40
+ Orders: OrderID=10481 OrderDate=3/20/1997 Total=1472.00
+ Orders: OrderID=10563 OrderDate=6/10/1997 Total=965.00
+ Orders: OrderID=10622 OrderDate=8/6/1997 Total=560.00
+ Orders: OrderID=10648 OrderDate=8/28/1997 Total=372.38
+ Orders: OrderID=10813 OrderDate=1/5/1998 Total=602.40
+ Orders: OrderID=10851 OrderDate=1/26/1998 Total=2603.00
+ Orders: OrderID=10877 OrderDate=2/9/1998 Total=1955.12
+ Orders: OrderID=11059 OrderDate=4/29/1998 Total=1838.00
+CustomerID=RICSU CompanyName=Richter Supermarkt
Address=Grenzacherweg 237 City=Genève Region=null
PostalCode=1203 Country=Switzerland Phone=0897-034214
Fax=null Orders=...
+ Orders: OrderID=10255 OrderDate=7/12/1996 Total=2490.50
+ Orders: OrderID=10419 OrderDate=1/20/1997 Total=2097.60
+ Orders: OrderID=10537 OrderDate=5/14/1997 Total=1823.80
+ Orders: OrderID=10666 OrderDate=9/12/1997 Total=4666.94
+ Orders: OrderID=10751 OrderDate=11/24/1997 Total=1631.48
+ Orders: OrderID=10758 OrderDate=11/28/1997 Total=1644.60
+ Orders: OrderID=10931 OrderDate=3/6/1998 Total=799.20
+ Orders: OrderID=10951 OrderDate=3/16/1998 Total=458.76
+ Orders: OrderID=11033 OrderDate=4/17/1998 Total=3232.80
+ Orders: OrderID=11075 OrderDate=5/6/1998 Total=498.10
+CustomerID=ROMEY CompanyName=Romero y tomillo Address=Gran Vía,
1 City=Madrid Region=null PostalCode=28001
Country=Spain Phone=(91) 745 6200 Fax=(91) 745 6210 Orders=...
+ Orders: OrderID=10281 OrderDate=8/14/1996 Total=86.50
+ Orders: OrderID=10282 OrderDate=8/15/1996 Total=155.40
+ Orders: OrderID=10306 OrderDate=9/16/1996 Total=498.50
+ Orders: OrderID=10917 OrderDate=3/2/1998 Total=365.89
+ Orders: OrderID=11013 OrderDate=4/9/1998 Total=361.00
+CustomerID=SANTG CompanyName=Santé Gourmet Address=Erling
Skakkes gate 78 City=Stavern Region=null PostalCode=4110
Country=Norway Phone=07-98 92 35 Fax=07-98 92 47 Orders=...
+ Orders: OrderID=10387 OrderDate=12/18/1996 Total=1058.40
+ Orders: OrderID=10520 OrderDate=4/29/1997 Total=200.00
+ Orders: OrderID=10639 OrderDate=8/20/1997 Total=500.00
+ Orders: OrderID=10831 OrderDate=1/14/1998 Total=2684.40
+ Orders: OrderID=10909 OrderDate=2/26/1998 Total=670.00
+ Orders: OrderID=11015 OrderDate=4/10/1998 Total=622.35
+CustomerID=SAVEA CompanyName=Save-a-lot Markets Address=187
Suffolk Ln. City=Boise Region=ID PostalCode=83720
Country=USA Phone=(208) 555-8097 Fax=null Orders=...
+ Orders: OrderID=10324 OrderDate=10/8/1996 Total=5275.72
+ Orders: OrderID=10393 OrderDate=12/25/1996 Total=2556.95
+ Orders: OrderID=10398 OrderDate=12/30/1996 Total=2505.60
+ Orders: OrderID=10440 OrderDate=2/10/1997 Total=4924.14
+ Orders: OrderID=10452 OrderDate=2/20/1997 Total=2018.50
+ Orders: OrderID=10510 OrderDate=4/18/1997 Total=4707.54
+ Orders: OrderID=10555 OrderDate=6/2/1997 Total=2944.40
+ Orders: OrderID=10603 OrderDate=7/18/1997 Total=1483.00
+ Orders: OrderID=10607 OrderDate=7/22/1997 Total=6475.40
+ Orders: OrderID=10612 OrderDate=7/28/1997 Total=6375.00
+ Orders: OrderID=10627 OrderDate=8/11/1997 Total=1185.75
+ Orders: OrderID=10657 OrderDate=9/4/1997 Total=4371.60
+ Orders: OrderID=10678 OrderDate=9/23/1997 Total=5256.50
+ Orders: OrderID=10700 OrderDate=10/10/1997 Total=1638.40
+ Orders: OrderID=10711 OrderDate=10/21/1997 Total=4451.70
+ Orders: OrderID=10713 OrderDate=10/22/1997 Total=2827.90
+ Orders: OrderID=10714 OrderDate=10/22/1997 Total=2205.75
+ Orders: OrderID=10722 OrderDate=10/29/1997 Total=1570.00
+ Orders: OrderID=10748 OrderDate=11/20/1997 Total=2196.00
+ Orders: OrderID=10757 OrderDate=11/27/1997 Total=3082.00
+ Orders: OrderID=10815 OrderDate=1/5/1998 Total=40.00
+ Orders: OrderID=10847 OrderDate=1/22/1998 Total=4931.92
+ Orders: OrderID=10882 OrderDate=2/11/1998 Total=892.64
+ Orders: OrderID=10894 OrderDate=2/18/1998 Total=2753.10
+ Orders: OrderID=10941 OrderDate=3/11/1998 Total=4011.75
+ Orders: OrderID=10983 OrderDate=3/27/1998 Total=720.90
+ Orders: OrderID=10984 OrderDate=3/30/1998 Total=1809.75
+ Orders: OrderID=11002 OrderDate=4/6/1998 Total=1811.10
+ Orders: OrderID=11030 OrderDate=4/17/1998 Total=12615.05
+ Orders: OrderID=11031 OrderDate=4/17/1998 Total=2393.50
+ Orders: OrderID=11064 OrderDate=5/1/1998 Total=4330.40
+CustomerID=SEVES CompanyName=Seven Seas Imports Address=90
Wadhurst Rd. City=London Region=null PostalCode=OX15
4NB Country=UK Phone=(171) 555-1717 Fax=(171) 555-5646
Orders=...
+ Orders: OrderID=10359 OrderDate=11/21/1996 Total=3471.68
+ Orders: OrderID=10377 OrderDate=12/9/1996 Total=863.60
+ Orders: OrderID=10388 OrderDate=12/19/1996 Total=1228.80
+ Orders: OrderID=10472 OrderDate=3/12/1997 Total=1036.80
+ Orders: OrderID=10523 OrderDate=5/1/1997 Total=2444.31
+ Orders: OrderID=10547 OrderDate=5/23/1997 Total=1792.80
+ Orders: OrderID=10800 OrderDate=12/26/1997 Total=1468.94
+ Orders: OrderID=10804 OrderDate=12/30/1997 Total=2278.40
+ Orders: OrderID=10869 OrderDate=2/4/1998 Total=1630.00
+CustomerID=SIMOB CompanyName=Simons bistro Address=Vinbæltet
34 City=København Region=null PostalCode=1734
Country=Denmark Phone=31 12 34 56 Fax=31 13 35 57
Orders=...
+ Orders: OrderID=10341 OrderDate=10/29/1996 Total=352.60
+ Orders: OrderID=10417 OrderDate=1/16/1997 Total=11188.40
+ Orders: OrderID=10556 OrderDate=6/3/1997 Total=835.20
+ Orders: OrderID=10642 OrderDate=8/22/1997 Total=696.00
+ Orders: OrderID=10669 OrderDate=9/15/1997 Total=570.00
+ Orders: OrderID=10802 OrderDate=12/29/1997 Total=2942.81
+ Orders: OrderID=11074 OrderDate=5/6/1998 Total=232.08
+CustomerID=SPECD CompanyName=Spécialités du monde
Address=25, rue Lauriston City=Paris Region=null
PostalCode=75016 Country=France Phone=(1) 47.55.60.10 Fax=(1)
47.55.60.20 Orders=...
+ Orders: OrderID=10738 OrderDate=11/12/1997 Total=52.35
+ Orders: OrderID=10907 OrderDate=2/25/1998 Total=108.50
+ Orders: OrderID=10964 OrderDate=3/20/1998 Total=2052.50
+ Orders: OrderID=11043 OrderDate=4/22/1998 Total=210.00
+CustomerID=SPLIR CompanyName=Split Rail Beer & Ale
Address=P.O. Box 555 City=Lander Region=WY
PostalCode=82520 Country=USA Phone=(307) 555-4680 Fax=(307)
555-6525 Orders=...
+ Orders: OrderID=10271 OrderDate=8/1/1996 Total=48.00
+ Orders: OrderID=10329 OrderDate=10/15/1996 Total=4578.43
+ Orders: OrderID=10349 OrderDate=11/8/1996 Total=141.60
+ Orders: OrderID=10369 OrderDate=12/2/1996 Total=2390.40
+ Orders: OrderID=10385 OrderDate=12/17/1996 Total=691.20
+ Orders: OrderID=10432 OrderDate=1/31/1997 Total=485.00
+ Orders: OrderID=10756 OrderDate=11/27/1997 Total=1990.00
+ Orders: OrderID=10821 OrderDate=1/8/1998 Total=678.00
+ Orders: OrderID=10974 OrderDate=3/25/1998 Total=439.00
+CustomerID=SUPRD CompanyName=Suprêmes délices Address=Boulevard
Tirou, 255 City=Charleroi Region=null PostalCode=B-6000
Country=Belgium Phone=(071) 23 67 22 20 Fax=(071) 23 67 22
21 Orders=...
+ Orders: OrderID=10252 OrderDate=7/9/1996 Total=3597.90
+ Orders: OrderID=10302 OrderDate=9/10/1996 Total=2708.80
+ Orders: OrderID=10458 OrderDate=2/26/1997 Total=3891.00
+ Orders: OrderID=10463 OrderDate=3/4/1997 Total=713.30
+ Orders: OrderID=10475 OrderDate=3/14/1997 Total=1505.18
+ Orders: OrderID=10767 OrderDate=12/5/1997 Total=28.00
+ Orders: OrderID=10841 OrderDate=1/20/1998 Total=4581.00
+ Orders: OrderID=10846 OrderDate=1/22/1998 Total=1112.00
+ Orders: OrderID=10885 OrderDate=2/12/1998 Total=1209.00
+ Orders: OrderID=10930 OrderDate=3/6/1998 Total=2255.50
+ Orders: OrderID=11035 OrderDate=4/20/1998 Total=1754.50
+ Orders: OrderID=11038 OrderDate=4/21/1998 Total=732.60
+CustomerID=THEBI CompanyName=The Big Cheese Address=89
Jefferson Way, Suite 2 City=Portland Region=OR
PostalCode=97201 Country=USA Phone=(503) 555-3612
Fax=null Orders=...
+ Orders: OrderID=10310 OrderDate=9/20/1996 Total=336.00
+ Orders: OrderID=10708 OrderDate=10/17/1997 Total=180.40
+ Orders: OrderID=10805 OrderDate=12/30/1997 Total=2775.00
+ Orders: OrderID=10992 OrderDate=4/1/1998 Total=69.60
+CustomerID=THECR CompanyName=The Cracker Box Address=55 Grizzly
Peak Rd. City=Butte Region=MT PostalCode=59801
Country=USA Phone=(406) 555-5834 Fax=(406) 555-8083 Orders=...
+ Orders: OrderID=10624 OrderDate=8/7/1997 Total=1393.24
+ Orders: OrderID=10775 OrderDate=12/12/1997 Total=228.00
+ Orders: OrderID=11003 OrderDate=4/6/1998 Total=326.00
+CustomerID=TOMSP CompanyName=Toms Spezialitäten Address=Luisenstr.
48 City=Münster Region=null PostalCode=44087
Country=Germany Phone=0251-031259 Fax=0251-035695
Orders=...
+ Orders: OrderID=10438 OrderDate=2/6/1997 Total=454.00
+ Orders: OrderID=10446 OrderDate=2/14/1997 Total=246.24
+ Orders: OrderID=10548 OrderDate=5/26/1997 Total=240.10
+ Orders: OrderID=10608 OrderDate=7/23/1997 Total=1064.00
+ Orders: OrderID=10967 OrderDate=3/23/1998 Total=910.40
+CustomerID=TORTU CompanyName=Tortuga Restaurante
Address=Avda. Azteca 123 City=México D.F. Region=null
PostalCode=05033 Country=Mexico Phone=(5) 555-2933
Fax=null Orders=...
+ Orders: OrderID=10276 OrderDate=8/8/1996 Total=420.00
+ Orders: OrderID=10293 OrderDate=8/29/1996 Total=848.70
+ Orders: OrderID=10304 OrderDate=9/12/1996 Total=954.40
+ Orders: OrderID=10319 OrderDate=10/2/1996 Total=1191.20
+ Orders: OrderID=10518 OrderDate=4/25/1997 Total=4150.05
+ Orders: OrderID=10576 OrderDate=6/23/1997 Total=838.45
+ Orders: OrderID=10676 OrderDate=9/22/1997 Total=534.85
+ Orders: OrderID=10842 OrderDate=1/20/1998 Total=975.00
+ Orders: OrderID=10915 OrderDate=2/27/1998 Total=539.50
+ Orders: OrderID=11069 OrderDate=5/4/1998 Total=360.00
+CustomerID=TRADH CompanyName=Tradição Hipermercados
Address=Av. Inês de Castro, 414 City=São Paulo Region=SP
PostalCode=05634-030 Country=Brazil Phone=(11) 555-2167 Fax=(11)
555-2168 Orders=...
+ Orders: OrderID=10249 OrderDate=7/5/1996 Total=1863.40
+ Orders: OrderID=10292 OrderDate=8/28/1996 Total=1296.00
+ Orders: OrderID=10496 OrderDate=4/4/1997 Total=190.00
+ Orders: OrderID=10606 OrderDate=7/22/1997 Total=1130.40
+ Orders: OrderID=10830 OrderDate=1/13/1998 Total=1974.00
+ Orders: OrderID=10834 OrderDate=1/15/1998 Total=1432.71
***The diff for this file has been truncated for email.***
=======================================
--- /dev/null
+++ /SampleLinq11.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,108 @@
+#summary Projection Operators: Select - Anonymous Types 3
+#sidebar SamplesTree
+
+== Projection Operators: Select - Anonymous Types 3 ==
+
+This sample uses select to produce a sequence containing some properties
of Products, including UnitPrice which is renamed to Price in the resulting
type.
+
+=== Code ===
+
+{{{
+public void Linq11() {
+ List<Product> products = GetProductList();
+
+ var productInfos =
+ from p in products
+ select new {p.ProductName, p.Category, Price = p.UnitPrice};
+
+ Console.WriteLine("Product Info:");
+ foreach (var productInfo in productInfos) {
+ Console.WriteLine("{0} is in the category {1} and costs {2} per
unit.", productInfo.ProductName, productInfo.Category, productInfo.Price);
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+Product Info:
+Chai is in the category Beverages and costs 18.0000 per unit.
+Chang is in the category Beverages and costs 19.0000 per unit.
+Aniseed Syrup is in the category Condiments and costs 10.0000 per unit.
+Chef Anton's Cajun Seasoning is in the category Condiments and costs
22.0000 per unit.
+Chef Anton's Gumbo Mix is in the category Condiments and costs 21.3500 per
unit.
+Grandma's Boysenberry Spread is in the category Condiments and costs
25.0000 per unit.
+Uncle Bob's Organic Dried Pears is in the category Produce and costs
30.0000 per unit.
+Northwoods Cranberry Sauce is in the category Condiments and costs 40.0000
per unit.
+Mishi Kobe Niku is in the category Meat/Poultry and costs 97.0000 per unit.
+Ikura is in the category Seafood and costs 31.0000 per unit.
+Queso Cabrales is in the category Dairy Products and costs 21.0000 per
unit.
+Queso Manchego La Pastora is in the category Dairy Products and costs
38.0000 per unit.
+Konbu is in the category Seafood and costs 6.0000 per unit.
+Tofu is in the category Produce and costs 23.2500 per unit.
+Genen Shouyu is in the category Condiments and costs 15.5000 per unit.
+Pavlova is in the category Confections and costs 17.4500 per unit.
+Alice Mutton is in the category Meat/Poultry and costs 39.0000 per unit.
+Carnarvon Tigers is in the category Seafood and costs 62.5000 per unit.
+Teatime Chocolate Biscuits is in the category Confections and costs 9.2000
per unit.
+Sir Rodney's Marmalade is in the category Confections and costs 81.0000
per unit.
+Sir Rodney's Scones is in the category Confections and costs 10.0000 per
unit.
+Gustaf's Knäckebröd is in the category Grains/Cereals and costs 21.0000
per unit.
+Tunnbröd is in the category Grains/Cereals and costs 9.0000 per unit.
+Guaraná Fantástica is in the category Beverages and costs 4.5000 per unit.
+NuNuCa Nuß-Nougat-Creme is in the category Confections and costs 14.0000
per unit.
+Gumbär Gummibärchen is in the category Confections and costs 31.2300 per
unit.
+Schoggi Schokolade is in the category Confections and costs 43.9000 per
unit.
+Rössle Sauerkraut is in the category Produce and costs 45.6000 per unit.
+Thüringer Rostbratwurst is in the category Meat/Poultry and costs 123.7900
per unit.
+Nord-Ost Matjeshering is in the category Seafood and costs 25.8900 per
unit.
+Gorgonzola Telino is in the category Dairy Products and costs 12.5000 per
unit.
+Mascarpone Fabioli is in the category Dairy Products and costs 32.0000 per
unit.
+Geitost is in the category Dairy Products and costs 2.5000 per unit.
+Sasquatch Ale is in the category Beverages and costs 14.0000 per unit.
+Steeleye Stout is in the category Beverages and costs 18.0000 per unit.
+Inlagd Sill is in the category Seafood and costs 19.0000 per unit.
+Gravad lax is in the category Seafood and costs 26.0000 per unit.
+Côte de Blaye is in the category Beverages and costs 263.5000 per unit.
+Chartreuse verte is in the category Beverages and costs 18.0000 per unit.
+Boston Crab Meat is in the category Seafood and costs 18.4000 per unit.
+Jack's New England Clam Chowder is in the category Seafood and costs
9.6500 per unit.
+Singaporean Hokkien Fried Mee is in the category Grains/Cereals and costs
14.0000 per unit.
+Ipoh Coffee is in the category Beverages and costs 46.0000 per unit.
+Gula Malacca is in the category Condiments and costs 19.4500 per unit.
+Rogede sild is in the category Seafood and costs 9.5000 per unit.
+Spegesild is in the category Seafood and costs 12.0000 per unit.
+Zaanse koeken is in the category Confections and costs 9.5000 per unit.
+Chocolade is in the category Confections and costs 12.7500 per unit.
+Maxilaku is in the category Confections and costs 20.0000 per unit.
+Valkoinen suklaa is in the category Confections and costs 16.2500 per unit.
+Manjimup Dried Apples is in the category Produce and costs 53.0000 per
unit.
+Filo Mix is in the category Grains/Cereals and costs 7.0000 per unit.
+Perth Pasties is in the category Meat/Poultry and costs 32.8000 per unit.
+Tourtière is in the category Meat/Poultry and costs 7.4500 per unit.
+Pâté chinois is in the category Meat/Poultry and costs 24.0000 per unit.
+Gnocchi di nonna Alice is in the category Grains/Cereals and costs 38.0000
per unit.
+Ravioli Angelo is in the category Grains/Cereals and costs 19.5000 per
unit.
+Escargots de Bourgogne is in the category Seafood and costs 13.2500 per
unit.
+Raclette Courdavault is in the category Dairy Products and costs 55.0000
per unit.
+Camembert Pierrot is in the category Dairy Products and costs 34.0000 per
unit.
+Sirop d'érable is in the category Condiments and costs 28.5000 per unit.
+Tarte au sucre is in the category Confections and costs 49.3000 per unit.
+Vegie-spread is in the category Condiments and costs 43.9000 per unit.
+Wimmers gute Semmelknödel is in the category Grains/Cereals and costs
33.2500 per unit.
+Louisiana Fiery Hot Pepper Sauce is in the category Condiments and costs
21.0500 per unit.
+Louisiana Hot Spiced Okra is in the category Condiments and costs 17.0000
per unit.
+Laughing Lumberjack Lager is in the category Beverages and costs 14.0000
per unit.
+Scottish Longbreads is in the category Confections and costs 12.5000 per
unit.
+Gudbrandsdalsost is in the category Dairy Products and costs 36.0000 per
unit.
+Outback Lager is in the category Beverages and costs 15.0000 per unit.
+Flotemysost is in the category Dairy Products and costs 21.5000 per unit.
+Mozzarella di Giovanni is in the category Dairy Products and costs 34.8000
per unit.
+Röd Kaviar is in the category Seafood and costs 15.0000 per unit.
+Longlife Tofu is in the category Produce and costs 10.0000 per unit.
+Rhönbräu Klosterbier is in the category Beverages and costs 7.7500 per
unit.
+Lakkalikööri is in the category Beverages and costs 18.0000 per unit.
+Original Frankfurter grüne Soße is in the category Condiments and costs
13.0000 per unit.
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq12.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,39 @@
+#summary Projection Operators: Select - Indexed
+#sidebar SamplesTree
+
+== Projection Operators: Select - Indexed ==
+
+This sample uses an indexed Select clause to determine if the value of
ints in an array match their position in the array.
+
+=== Code ===
+
+{{{
+public void Linq12() {
+ int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
+
+ var numsInPlace = numbers.Select((num, index) => new {Num = num,
InPlace = (num == index)});
+
+ Console.WriteLine("Number: In-place?");
+ foreach (var n in numsInPlace) {
+ Console.WriteLine("{0}: {1}", n.Num, n.InPlace);
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+Number: In-place?
+5: False
+4: False
+1: False
+3: True
+9: False
+8: False
+6: True
+7: True
+2: False
+0: False
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq13.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,38 @@
+#summary Projection Operators: Select - Filtered
+#sidebar SamplesTree
+
+== Projection Operators: Select - Filtered ==
+
+This sample combines select and where to make a simple query that returns
the text form of each digit less than 5.
+
+=== Code ===
+
+{{{
+public void Linq13() {
+ int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
+ string[] digits =
{ "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"
};
+
+ var lowNums =
+ from n in numbers
+ where n < 5
+ select digits[n];
+
+ Console.WriteLine("Numbers < 5:");
+ foreach (var num in lowNums) {
+ Console.WriteLine(num);
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+Numbers < 5:
+four
+one
+three
+two
+zero
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq14.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,50 @@
+#summary Projection Operators: SelectMany - Compound from 1
+#sidebar SamplesTree
+
+== Projection Operators: SelectMany - Compound from 1 ==
+
+This sample uses a compound from clause to make a query that returns all
pairs of numbers from both arrays such that the number from numbersA is
less than the number from numbersB.
+
+=== Code ===
+
+{{{
+public void Linq14() {
+ int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };
+ int[] numbersB = { 1, 3, 5, 7, 8 };
+
+ var pairs =
+ from a in numbersA
+ from b in numbersB
+ where a < b
+ select new {a, b};
+
+ Console.WriteLine("Pairs where a < b:");
+ foreach (var pair in pairs) {
+ Console.WriteLine("{0} is less than {1}", pair.a, pair.b);
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+Pairs where a < b:
+0 is less than 1
+0 is less than 3
+0 is less than 5
+0 is less than 7
+0 is less than 8
+2 is less than 3
+2 is less than 5
+2 is less than 7
+2 is less than 8
+4 is less than 5
+4 is less than 7
+4 is less than 8
+5 is less than 7
+5 is less than 8
+6 is less than 7
+6 is less than 8
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq15.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,263 @@
+#summary Projection Operators: SelectMany - Compound from 2
+#sidebar SamplesTree
+
+== Projection Operators: SelectMany - Compound from 2 ==
+
+This sample uses a compound from clause to select all orders where the
order total is less than 500.00.
+
+=== Code ===
+
+{{{
+public void Linq15() {
+ List<Customer> customers = GetCustomerList();
+
+ var orders =
+ from c in customers
+ from o in c.Orders
+ where o.Total < 500.00M
+ select new {c.CustomerID, o.OrderID, o.Total};
+
+ ObjectDumper.Write(orders);
+}
+
+}}}
+
+=== Output ===
+
+{{{
+CustomerID=ALFKI OrderID=10702 Total=330.00
+CustomerID=ALFKI OrderID=10952 Total=471.20
+CustomerID=ANATR OrderID=10308 Total=88.80
+CustomerID=ANATR OrderID=10625 Total=479.75
+CustomerID=ANATR OrderID=10759 Total=320.00
+CustomerID=ANTON OrderID=10365 Total=403.20
+CustomerID=ANTON OrderID=10682 Total=375.50
+CustomerID=AROUT OrderID=10355 Total=480.00
+CustomerID=AROUT OrderID=10453 Total=407.70
+CustomerID=AROUT OrderID=10741 Total=228.00
+CustomerID=AROUT OrderID=10743 Total=319.20
+CustomerID=AROUT OrderID=10793 Total=191.10
+CustomerID=AROUT OrderID=10864 Total=282.00
+CustomerID=AROUT OrderID=10920 Total=390.00
+CustomerID=AROUT OrderID=11016 Total=491.50
+CustomerID=BERGS OrderID=10445 Total=174.90
+CustomerID=BERGS OrderID=10689 Total=472.50
+CustomerID=BERGS OrderID=10778 Total=96.50
+CustomerID=BLAUS OrderID=10501 Total=149.00
+CustomerID=BLAUS OrderID=10509 Total=136.80
+CustomerID=BLAUS OrderID=10582 Total=330.00
+CustomerID=BLAUS OrderID=10614 Total=464.00
+CustomerID=BLONP OrderID=10628 Total=450.00
+CustomerID=BOLID OrderID=10970 Total=224.00
+CustomerID=BONAP OrderID=10331 Total=88.50
+CustomerID=BONAP OrderID=10730 Total=484.26
+CustomerID=BONAP OrderID=10732 Total=360.00
+CustomerID=BONAP OrderID=10940 Total=360.00
+CustomerID=BSBEV OrderID=10289 Total=479.40
+CustomerID=BSBEV OrderID=10484 Total=386.20
+CustomerID=BSBEV OrderID=10538 Total=139.80
+CustomerID=BSBEV OrderID=10539 Total=355.50
+CustomerID=BSBEV OrderID=10578 Total=477.00
+CustomerID=BSBEV OrderID=10599 Total=493.00
+CustomerID=BSBEV OrderID=10947 Total=220.00
+CustomerID=CACTU OrderID=10521 Total=225.50
+CustomerID=CACTU OrderID=10782 Total=12.50
+CustomerID=CACTU OrderID=10819 Total=477.00
+CustomerID=CACTU OrderID=10881 Total=150.00
+CustomerID=CACTU OrderID=11054 Total=305.00
+CustomerID=CENTC OrderID=10259 Total=100.80
+CustomerID=COMMI OrderID=10466 Total=216.00
+CustomerID=COMMI OrderID=10969 Total=108.00
+CustomerID=COMMI OrderID=11042 Total=405.75
+CustomerID=CONSH OrderID=10462 Total=156.00
+CustomerID=DRACD OrderID=10363 Total=447.20
+CustomerID=DRACD OrderID=10391 Total=86.40
+CustomerID=DRACD OrderID=10797 Total=420.00
+CustomerID=DRACD OrderID=11067 Total=86.85
+CustomerID=DUMON OrderID=10311 Total=268.80
+CustomerID=DUMON OrderID=10609 Total=424.00
+CustomerID=DUMON OrderID=10683 Total=63.00
+CustomerID=ERNSH OrderID=10771 Total=344.00
+CustomerID=FAMIA OrderID=10386 Total=166.00
+CustomerID=FAMIA OrderID=10414 Total=224.83
+CustomerID=FAMIA OrderID=10581 Total=310.00
+CustomerID=FAMIA OrderID=10725 Total=287.80
+CustomerID=FOLKO OrderID=10378 Total=103.20
+CustomerID=FOLKO OrderID=10434 Total=321.12
+CustomerID=FOLKO OrderID=10460 Total=176.10
+CustomerID=FOLKO OrderID=10824 Total=250.80
+CustomerID=FOLKO OrderID=10955 Total=74.40
+CustomerID=FOLKO OrderID=10980 Total=248.00
+CustomerID=FRANS OrderID=10422 Total=49.80
+CustomerID=FRANS OrderID=10710 Total=93.50
+CustomerID=FRANS OrderID=10753 Total=88.00
+CustomerID=FRANS OrderID=10807 Total=18.40
+CustomerID=FRANS OrderID=11060 Total=266.00
+CustomerID=FURIB OrderID=10352 Total=136.30
+CustomerID=FURIB OrderID=10491 Total=259.50
+CustomerID=FURIB OrderID=10604 Total=230.85
+CustomerID=FURIB OrderID=10963 Total=57.80
+CustomerID=GALED OrderID=10366 Total=136.00
+CustomerID=GALED OrderID=10426 Total=338.20
+CustomerID=GALED OrderID=10568 Total=155.00
+CustomerID=GALED OrderID=10887 Total=70.00
+CustomerID=GALED OrderID=10928 Total=137.50
+CustomerID=GODOS OrderID=10874 Total=310.00
+CustomerID=GODOS OrderID=11037 Total=60.00
+CustomerID=GOURL OrderID=10652 Total=318.84
+CustomerID=GOURL OrderID=10777 Total=224.00
+CustomerID=GOURL OrderID=10959 Total=131.75
+CustomerID=GOURL OrderID=11049 Total=273.60
+CustomerID=GREAL OrderID=10528 Total=392.20
+CustomerID=GREAL OrderID=10589 Total=72.00
+CustomerID=GREAL OrderID=10936 Total=456.00
+CustomerID=GREAL OrderID=11006 Total=329.68
+CustomerID=GREAL OrderID=11040 Total=200.00
+CustomerID=GROSR OrderID=10785 Total=387.50
+CustomerID=HANAR OrderID=10770 Total=236.25
+CustomerID=HANAR OrderID=10925 Total=475.15
+CustomerID=HILAA OrderID=10476 Total=180.48
+CustomerID=HILAA OrderID=10613 Total=353.20
+CustomerID=HILAA OrderID=10705 Total=378.00
+CustomerID=HILAA OrderID=10863 Total=441.15
+CustomerID=HILAA OrderID=10960 Total=265.35
+CustomerID=HUNGC OrderID=10375 Total=338.00
+CustomerID=HUNGC OrderID=10394 Total=442.00
+CustomerID=HUNGC OrderID=10415 Total=102.40
+CustomerID=HUNGC OrderID=10600 Total=479.80
+CustomerID=ISLAT OrderID=10318 Total=240.40
+CustomerID=ISLAT OrderID=10321 Total=144.00
+CustomerID=ISLAT OrderID=10473 Total=230.40
+CustomerID=ISLAT OrderID=10674 Total=45.00
+CustomerID=ISLAT OrderID=10798 Total=446.60
+CustomerID=KOENE OrderID=10323 Total=164.40
+CustomerID=KOENE OrderID=10506 Total=415.80
+CustomerID=KOENE OrderID=10542 Total=469.11
+CustomerID=LACOR OrderID=10972 Total=251.50
+CustomerID=LACOR OrderID=10973 Total=291.55
+CustomerID=LAMAI OrderID=10358 Total=429.40
+CustomerID=LAMAI OrderID=10371 Total=72.96
+CustomerID=LAMAI OrderID=10425 Total=360.00
+CustomerID=LAMAI OrderID=10454 Total=331.20
+CustomerID=LAMAI OrderID=10610 Total=299.25
+CustomerID=LAMAI OrderID=10631 Total=55.80
+CustomerID=LAMAI OrderID=10832 Total=475.11
+CustomerID=LAMAI OrderID=11051 Total=36.00
+CustomerID=LAUGB OrderID=10495 Total=278.00
+CustomerID=LAUGB OrderID=10620 Total=57.50
+CustomerID=LAUGB OrderID=10810 Total=187.00
+CustomerID=LAZYK OrderID=10482 Total=147.00
+CustomerID=LAZYK OrderID=10545 Total=210.00
+CustomerID=LEHMS OrderID=10279 Total=351.00
+CustomerID=LEHMS OrderID=10534 Total=465.70
+CustomerID=LEHMS OrderID=10891 Total=368.93
+CustomerID=LETSS OrderID=10579 Total=317.75
+CustomerID=LILAS OrderID=10381 Total=112.00
+CustomerID=LILAS OrderID=10899 Total=122.40
+CustomerID=LILAS OrderID=11065 Total=189.42
+CustomerID=LILAS OrderID=11071 Total=484.50
+CustomerID=LINOD OrderID=10405 Total=400.00
+CustomerID=LINOD OrderID=10840 Total=211.20
+CustomerID=LINOD OrderID=11014 Total=243.18
+CustomerID=LONEP OrderID=10307 Total=424.00
+CustomerID=LONEP OrderID=10317 Total=288.00
+CustomerID=LONEP OrderID=10544 Total=417.20
+CustomerID=LONEP OrderID=10662 Total=125.00
+CustomerID=LONEP OrderID=10867 Total=98.40
+CustomerID=LONEP OrderID=10883 Total=36.00
+CustomerID=MAGAA OrderID=10275 Total=291.84
+CustomerID=MAGAA OrderID=10467 Total=235.20
+CustomerID=MAGAA OrderID=10754 Total=55.20
+CustomerID=MAGAA OrderID=10950 Total=110.00
+CustomerID=MAISD OrderID=11004 Total=295.38
+CustomerID=MEREP OrderID=10376 Total=399.00
+CustomerID=MEREP OrderID=10505 Total=147.90
+CustomerID=MORGK OrderID=10699 Total=114.00
+CustomerID=MORGK OrderID=10945 Total=245.00
+CustomerID=NORTS OrderID=10517 Total=352.00
+CustomerID=NORTS OrderID=10752 Total=252.00
+CustomerID=NORTS OrderID=11057 Total=45.00
+CustomerID=OCEAN OrderID=10409 Total=319.20
+CustomerID=OCEAN OrderID=10531 Total=110.00
+CustomerID=OCEAN OrderID=10898 Total=30.00
+CustomerID=OTTIK OrderID=10508 Total=240.00
+CustomerID=PERIC OrderID=10322 Total=112.00
+CustomerID=PERIC OrderID=11073 Total=300.00
+CustomerID=PICCO OrderID=10489 Total=439.20
+CustomerID=PRINI OrderID=10336 Total=285.12
+CustomerID=QUEDE OrderID=10261 Total=448.00
+CustomerID=QUEDE OrderID=10291 Total=497.52
+CustomerID=QUEDE OrderID=10794 Total=314.76
+CustomerID=QUICK OrderID=10313 Total=182.40
+CustomerID=RANCH OrderID=10448 Total=443.40
+CustomerID=RANCH OrderID=11019 Total=76.00
+CustomerID=REGGC OrderID=10288 Total=80.10
+CustomerID=REGGC OrderID=10428 Total=192.00
+CustomerID=REGGC OrderID=10562 Total=488.70
+CustomerID=REGGC OrderID=10586 Total=23.80
+CustomerID=REGGC OrderID=10655 Total=154.40
+CustomerID=REGGC OrderID=11062 Total=406.40
+CustomerID=RICAR OrderID=10299 Total=349.50
+CustomerID=RICAR OrderID=10648 Total=372.38
+CustomerID=RICSU OrderID=10951 Total=458.76
+CustomerID=RICSU OrderID=11075 Total=498.10
+CustomerID=ROMEY OrderID=10281 Total=86.50
+CustomerID=ROMEY OrderID=10282 Total=155.40
+CustomerID=ROMEY OrderID=10306 Total=498.50
+CustomerID=ROMEY OrderID=10917 Total=365.89
+CustomerID=ROMEY OrderID=11013 Total=361.00
+CustomerID=SANTG OrderID=10520 Total=200.00
+CustomerID=SAVEA OrderID=10815 Total=40.00
+CustomerID=SIMOB OrderID=10341 Total=352.60
+CustomerID=SIMOB OrderID=11074 Total=232.08
+CustomerID=SPECD OrderID=10738 Total=52.35
+CustomerID=SPECD OrderID=10907 Total=108.50
+CustomerID=SPECD OrderID=11043 Total=210.00
+CustomerID=SPLIR OrderID=10271 Total=48.00
+CustomerID=SPLIR OrderID=10349 Total=141.60
+CustomerID=SPLIR OrderID=10432 Total=485.00
+CustomerID=SPLIR OrderID=10974 Total=439.00
+CustomerID=SUPRD OrderID=10767 Total=28.00
+CustomerID=THEBI OrderID=10310 Total=336.00
+CustomerID=THEBI OrderID=10708 Total=180.40
+CustomerID=THEBI OrderID=10992 Total=69.60
+CustomerID=THECR OrderID=10775 Total=228.00
+CustomerID=THECR OrderID=11003 Total=326.00
+CustomerID=TOMSP OrderID=10438 Total=454.00
+CustomerID=TOMSP OrderID=10446 Total=246.24
+CustomerID=TOMSP OrderID=10548 Total=240.10
+CustomerID=TORTU OrderID=10276 Total=420.00
+CustomerID=TORTU OrderID=11069 Total=360.00
+CustomerID=TRADH OrderID=10496 Total=190.00
+CustomerID=TRAIH OrderID=10822 Total=237.90
+CustomerID=VAFFE OrderID=10602 Total=48.75
+CustomerID=VICTE OrderID=10334 Total=144.80
+CustomerID=VICTE OrderID=10450 Total=425.12
+CustomerID=VICTE OrderID=10478 Total=471.20
+CustomerID=VICTE OrderID=10806 Total=439.60
+CustomerID=VICTE OrderID=10843 Total=159.00
+CustomerID=VINET OrderID=10295 Total=121.60
+CustomerID=VINET OrderID=10737 Total=139.80
+CustomerID=VINET OrderID=10739 Total=240.00
+CustomerID=WANDK OrderID=10348 Total=363.60
+CustomerID=WANDK OrderID=10651 Total=397.80
+CustomerID=WARTH OrderID=10266 Total=346.56
+CustomerID=WARTH OrderID=10412 Total=334.80
+CustomerID=WARTH OrderID=10437 Total=393.00
+CustomerID=WARTH OrderID=11025 Total=270.00
+CustomerID=WELLI OrderID=10585 Total=142.50
+CustomerID=WELLI OrderID=10809 Total=140.00
+CustomerID=WELLI OrderID=10900 Total=33.75
+CustomerID=WELLI OrderID=10905 Total=342.00
+CustomerID=WHITC OrderID=10723 Total=468.45
+CustomerID=WILMK OrderID=10248 Total=440.00
+CustomerID=WILMK OrderID=10615 Total=120.00
+CustomerID=WILMK OrderID=10673 Total=412.35
+CustomerID=WILMK OrderID=10873 Total=336.80
+CustomerID=WILMK OrderID=10910 Total=452.90
+CustomerID=WOLZA OrderID=10374 Total=459.00
+CustomerID=WOLZA OrderID=10792 Total=399.85
+CustomerID=WOLZA OrderID=10870 Total=160.00
+CustomerID=WOLZA OrderID=10906 Total=427.50
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq16.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,299 @@
+#summary Projection Operators: SelectMany - Compound from 3
+#sidebar SamplesTree
+
+== Projection Operators: SelectMany - Compound from 3 ==
+
+This sample uses a compound from clause to select all orders where the
order was made in 1998 or later.
+
+=== Code ===
+
+{{{
+public void Linq16() {
+ List<Customer> customers = GetCustomerList();
+
+ var orders =
+ from c in customers
+ from o in c.Orders
+ where o.OrderDate >= new DateTime(1998, 1, 1)
+ select new {c.CustomerID, o.OrderID, o.OrderDate};
+
+ ObjectDumper.Write(orders);
+}
+
+}}}
+
+=== Output ===
+
+{{{
+CustomerID=ALFKI OrderID=10835 OrderDate=1/15/1998
+CustomerID=ALFKI OrderID=10952 OrderDate=3/16/1998
+CustomerID=ALFKI OrderID=11011 OrderDate=4/9/1998
+CustomerID=ANATR OrderID=10926 OrderDate=3/4/1998
+CustomerID=ANTON OrderID=10856 OrderDate=1/28/1998
+CustomerID=AROUT OrderID=10864 OrderDate=2/2/1998
+CustomerID=AROUT OrderID=10920 OrderDate=3/3/1998
+CustomerID=AROUT OrderID=10953 OrderDate=3/16/1998
+CustomerID=AROUT OrderID=11016 OrderDate=4/10/1998
+CustomerID=BERGS OrderID=10837 OrderDate=1/16/1998
+CustomerID=BERGS OrderID=10857 OrderDate=1/28/1998
+CustomerID=BERGS OrderID=10866 OrderDate=2/3/1998
+CustomerID=BERGS OrderID=10875 OrderDate=2/6/1998
+CustomerID=BERGS OrderID=10924 OrderDate=3/4/1998
+CustomerID=BLAUS OrderID=10853 OrderDate=1/27/1998
+CustomerID=BLAUS OrderID=10956 OrderDate=3/17/1998
+CustomerID=BLAUS OrderID=11058 OrderDate=4/29/1998
+CustomerID=BLONP OrderID=10826 OrderDate=1/12/1998
+CustomerID=BOLID OrderID=10970 OrderDate=3/24/1998
+CustomerID=BONAP OrderID=10827 OrderDate=1/12/1998
+CustomerID=BONAP OrderID=10871 OrderDate=2/5/1998
+CustomerID=BONAP OrderID=10876 OrderDate=2/9/1998
+CustomerID=BONAP OrderID=10932 OrderDate=3/6/1998
+CustomerID=BONAP OrderID=10940 OrderDate=3/11/1998
+CustomerID=BONAP OrderID=11076 OrderDate=5/6/1998
+CustomerID=BOTTM OrderID=10918 OrderDate=3/2/1998
+CustomerID=BOTTM OrderID=10944 OrderDate=3/12/1998
+CustomerID=BOTTM OrderID=10949 OrderDate=3/13/1998
+CustomerID=BOTTM OrderID=10975 OrderDate=3/25/1998
+CustomerID=BOTTM OrderID=10982 OrderDate=3/27/1998
+CustomerID=BOTTM OrderID=11027 OrderDate=4/16/1998
+CustomerID=BOTTM OrderID=11045 OrderDate=4/23/1998
+CustomerID=BOTTM OrderID=11048 OrderDate=4/24/1998
+CustomerID=BSBEV OrderID=10943 OrderDate=3/11/1998
+CustomerID=BSBEV OrderID=10947 OrderDate=3/13/1998
+CustomerID=BSBEV OrderID=11023 OrderDate=4/14/1998
+CustomerID=CACTU OrderID=10819 OrderDate=1/7/1998
+CustomerID=CACTU OrderID=10881 OrderDate=2/11/1998
+CustomerID=CACTU OrderID=10937 OrderDate=3/10/1998
+CustomerID=CACTU OrderID=11054 OrderDate=4/28/1998
+CustomerID=CHOPS OrderID=10966 OrderDate=3/20/1998
+CustomerID=CHOPS OrderID=11029 OrderDate=4/16/1998
+CustomerID=CHOPS OrderID=11041 OrderDate=4/22/1998
+CustomerID=COMMI OrderID=10969 OrderDate=3/23/1998
+CustomerID=COMMI OrderID=11042 OrderDate=4/22/1998
+CustomerID=CONSH OrderID=10848 OrderDate=1/23/1998
+CustomerID=DRACD OrderID=10825 OrderDate=1/9/1998
+CustomerID=DRACD OrderID=11036 OrderDate=4/20/1998
+CustomerID=DRACD OrderID=11067 OrderDate=5/4/1998
+CustomerID=DUMON OrderID=10890 OrderDate=2/16/1998
+CustomerID=EASTC OrderID=10987 OrderDate=3/31/1998
+CustomerID=EASTC OrderID=11024 OrderDate=4/15/1998
+CustomerID=EASTC OrderID=11047 OrderDate=4/24/1998
+CustomerID=EASTC OrderID=11056 OrderDate=4/28/1998
+CustomerID=ERNSH OrderID=10836 OrderDate=1/16/1998
+CustomerID=ERNSH OrderID=10854 OrderDate=1/27/1998
+CustomerID=ERNSH OrderID=10895 OrderDate=2/18/1998
+CustomerID=ERNSH OrderID=10968 OrderDate=3/23/1998
+CustomerID=ERNSH OrderID=10979 OrderDate=3/26/1998
+CustomerID=ERNSH OrderID=10990 OrderDate=4/1/1998
+CustomerID=ERNSH OrderID=11008 OrderDate=4/8/1998
+CustomerID=ERNSH OrderID=11017 OrderDate=4/13/1998
+CustomerID=ERNSH OrderID=11072 OrderDate=5/5/1998
+CustomerID=FOLKO OrderID=10824 OrderDate=1/9/1998
+CustomerID=FOLKO OrderID=10880 OrderDate=2/10/1998
+CustomerID=FOLKO OrderID=10902 OrderDate=2/23/1998
+CustomerID=FOLKO OrderID=10955 OrderDate=3/17/1998
+CustomerID=FOLKO OrderID=10977 OrderDate=3/26/1998
+CustomerID=FOLKO OrderID=10980 OrderDate=3/27/1998
+CustomerID=FOLKO OrderID=10993 OrderDate=4/1/1998
+CustomerID=FOLKO OrderID=11001 OrderDate=4/6/1998
+CustomerID=FOLKO OrderID=11050 OrderDate=4/27/1998
+CustomerID=FRANK OrderID=10859 OrderDate=1/29/1998
+CustomerID=FRANK OrderID=10929 OrderDate=3/5/1998
+CustomerID=FRANK OrderID=11012 OrderDate=4/9/1998
+CustomerID=FRANR OrderID=10860 OrderDate=1/29/1998
+CustomerID=FRANR OrderID=10971 OrderDate=3/24/1998
+CustomerID=FRANS OrderID=11026 OrderDate=4/15/1998
+CustomerID=FRANS OrderID=11060 OrderDate=4/30/1998
+CustomerID=FURIB OrderID=10963 OrderDate=3/19/1998
+CustomerID=GALED OrderID=10887 OrderDate=2/13/1998
+CustomerID=GALED OrderID=10928 OrderDate=3/5/1998
+CustomerID=GODOS OrderID=10872 OrderDate=2/5/1998
+CustomerID=GODOS OrderID=10874 OrderDate=2/6/1998
+CustomerID=GODOS OrderID=10888 OrderDate=2/16/1998
+CustomerID=GODOS OrderID=10911 OrderDate=2/26/1998
+CustomerID=GODOS OrderID=10948 OrderDate=3/13/1998
+CustomerID=GODOS OrderID=11009 OrderDate=4/8/1998
+CustomerID=GODOS OrderID=11037 OrderDate=4/21/1998
+CustomerID=GOURL OrderID=10959 OrderDate=3/18/1998
+CustomerID=GOURL OrderID=11049 OrderDate=4/24/1998
+CustomerID=GREAL OrderID=10816 OrderDate=1/6/1998
+CustomerID=GREAL OrderID=10936 OrderDate=3/9/1998
+CustomerID=GREAL OrderID=11006 OrderDate=4/7/1998
+CustomerID=GREAL OrderID=11040 OrderDate=4/22/1998
+CustomerID=GREAL OrderID=11061 OrderDate=4/30/1998
+CustomerID=HANAR OrderID=10886 OrderDate=2/13/1998
+CustomerID=HANAR OrderID=10903 OrderDate=2/24/1998
+CustomerID=HANAR OrderID=10922 OrderDate=3/3/1998
+CustomerID=HANAR OrderID=10925 OrderDate=3/4/1998
+CustomerID=HANAR OrderID=10981 OrderDate=3/27/1998
+CustomerID=HANAR OrderID=11022 OrderDate=4/14/1998
+CustomerID=HANAR OrderID=11052 OrderDate=4/27/1998
+CustomerID=HILAA OrderID=10863 OrderDate=2/2/1998
+CustomerID=HILAA OrderID=10901 OrderDate=2/23/1998
+CustomerID=HILAA OrderID=10957 OrderDate=3/18/1998
+CustomerID=HILAA OrderID=10960 OrderDate=3/19/1998
+CustomerID=HILAA OrderID=10976 OrderDate=3/25/1998
+CustomerID=HILAA OrderID=11055 OrderDate=4/28/1998
+CustomerID=HUNGO OrderID=10897 OrderDate=2/19/1998
+CustomerID=HUNGO OrderID=10912 OrderDate=2/26/1998
+CustomerID=HUNGO OrderID=10985 OrderDate=3/30/1998
+CustomerID=HUNGO OrderID=11063 OrderDate=4/30/1998
+CustomerID=ISLAT OrderID=10829 OrderDate=1/13/1998
+CustomerID=ISLAT OrderID=10933 OrderDate=3/6/1998
+CustomerID=KOENE OrderID=10817 OrderDate=1/6/1998
+CustomerID=KOENE OrderID=10849 OrderDate=1/23/1998
+CustomerID=KOENE OrderID=10893 OrderDate=2/18/1998
+CustomerID=KOENE OrderID=11028 OrderDate=4/16/1998
+CustomerID=LACOR OrderID=10858 OrderDate=1/29/1998
+CustomerID=LACOR OrderID=10927 OrderDate=3/5/1998
+CustomerID=LACOR OrderID=10972 OrderDate=3/24/1998
+CustomerID=LACOR OrderID=10973 OrderDate=3/24/1998
+CustomerID=LAMAI OrderID=10832 OrderDate=1/14/1998
+CustomerID=LAMAI OrderID=10923 OrderDate=3/3/1998
+CustomerID=LAMAI OrderID=11051 OrderDate=4/27/1998
+CustomerID=LAUGB OrderID=10810 OrderDate=1/1/1998
+CustomerID=LEHMS OrderID=10862 OrderDate=1/30/1998
+CustomerID=LEHMS OrderID=10891 OrderDate=2/17/1998
+CustomerID=LEHMS OrderID=10934 OrderDate=3/9/1998
+CustomerID=LEHMS OrderID=11070 OrderDate=5/5/1998
+CustomerID=LETSS OrderID=10884 OrderDate=2/12/1998
+CustomerID=LILAS OrderID=10823 OrderDate=1/9/1998
+CustomerID=LILAS OrderID=10899 OrderDate=2/20/1998
+CustomerID=LILAS OrderID=10997 OrderDate=4/3/1998
+CustomerID=LILAS OrderID=11065 OrderDate=5/1/1998
+CustomerID=LILAS OrderID=11071 OrderDate=5/5/1998
+CustomerID=LINOD OrderID=10811 OrderDate=1/2/1998
+CustomerID=LINOD OrderID=10838 OrderDate=1/19/1998
+CustomerID=LINOD OrderID=10840 OrderDate=1/19/1998
+CustomerID=LINOD OrderID=10919 OrderDate=3/2/1998
+CustomerID=LINOD OrderID=10954 OrderDate=3/17/1998
+CustomerID=LINOD OrderID=11014 OrderDate=4/10/1998
+CustomerID=LINOD OrderID=11039 OrderDate=4/21/1998
+CustomerID=LONEP OrderID=10867 OrderDate=2/3/1998
+CustomerID=LONEP OrderID=10883 OrderDate=2/12/1998
+CustomerID=LONEP OrderID=11018 OrderDate=4/13/1998
+CustomerID=MAGAA OrderID=10818 OrderDate=1/7/1998
+CustomerID=MAGAA OrderID=10939 OrderDate=3/10/1998
+CustomerID=MAGAA OrderID=10950 OrderDate=3/16/1998
+CustomerID=MAISD OrderID=10892 OrderDate=2/17/1998
+CustomerID=MAISD OrderID=10896 OrderDate=2/19/1998
+CustomerID=MAISD OrderID=10978 OrderDate=3/26/1998
+CustomerID=MAISD OrderID=11004 OrderDate=4/7/1998
+CustomerID=MORGK OrderID=10945 OrderDate=3/12/1998
+CustomerID=NORTS OrderID=11057 OrderDate=4/29/1998
+CustomerID=OCEAN OrderID=10898 OrderDate=2/20/1998
+CustomerID=OCEAN OrderID=10958 OrderDate=3/18/1998
+CustomerID=OCEAN OrderID=10986 OrderDate=3/30/1998
+CustomerID=OLDWO OrderID=10855 OrderDate=1/27/1998
+CustomerID=OLDWO OrderID=10965 OrderDate=3/20/1998
+CustomerID=OLDWO OrderID=11034 OrderDate=4/20/1998
+CustomerID=OTTIK OrderID=10833 OrderDate=1/15/1998
+CustomerID=OTTIK OrderID=10999 OrderDate=4/3/1998
+CustomerID=OTTIK OrderID=11020 OrderDate=4/14/1998
+CustomerID=PERIC OrderID=10995 OrderDate=4/2/1998
+CustomerID=PERIC OrderID=11073 OrderDate=5/5/1998
+CustomerID=PICCO OrderID=10844 OrderDate=1/21/1998
+CustomerID=PICCO OrderID=11053 OrderDate=4/27/1998
+CustomerID=PRINI OrderID=10808 OrderDate=1/1/1998
+CustomerID=PRINI OrderID=11007 OrderDate=4/8/1998
+CustomerID=QUEDE OrderID=10989 OrderDate=3/31/1998
+CustomerID=QUEEN OrderID=10868 OrderDate=2/4/1998
+CustomerID=QUEEN OrderID=10913 OrderDate=2/26/1998
+CustomerID=QUEEN OrderID=10914 OrderDate=2/27/1998
+CustomerID=QUEEN OrderID=10961 OrderDate=3/19/1998
+CustomerID=QUEEN OrderID=11068 OrderDate=5/4/1998
+CustomerID=QUICK OrderID=10845 OrderDate=1/21/1998
+CustomerID=QUICK OrderID=10865 OrderDate=2/2/1998
+CustomerID=QUICK OrderID=10878 OrderDate=2/10/1998
+CustomerID=QUICK OrderID=10938 OrderDate=3/10/1998
+CustomerID=QUICK OrderID=10962 OrderDate=3/19/1998
+CustomerID=QUICK OrderID=10991 OrderDate=4/1/1998
+CustomerID=QUICK OrderID=10996 OrderDate=4/2/1998
+CustomerID=QUICK OrderID=11021 OrderDate=4/14/1998
+CustomerID=RANCH OrderID=10828 OrderDate=1/13/1998
+CustomerID=RANCH OrderID=10916 OrderDate=2/27/1998
+CustomerID=RANCH OrderID=11019 OrderDate=4/13/1998
+CustomerID=RATTC OrderID=10820 OrderDate=1/7/1998
+CustomerID=RATTC OrderID=10852 OrderDate=1/26/1998
+CustomerID=RATTC OrderID=10889 OrderDate=2/16/1998
+CustomerID=RATTC OrderID=10988 OrderDate=3/31/1998
+CustomerID=RATTC OrderID=11000 OrderDate=4/6/1998
+CustomerID=RATTC OrderID=11077 OrderDate=5/6/1998
+CustomerID=REGGC OrderID=10812 OrderDate=1/2/1998
+CustomerID=REGGC OrderID=10908 OrderDate=2/26/1998
+CustomerID=REGGC OrderID=10942 OrderDate=3/11/1998
+CustomerID=REGGC OrderID=11010 OrderDate=4/9/1998
+CustomerID=REGGC OrderID=11062 OrderDate=4/30/1998
+CustomerID=RICAR OrderID=10813 OrderDate=1/5/1998
+CustomerID=RICAR OrderID=10851 OrderDate=1/26/1998
+CustomerID=RICAR OrderID=10877 OrderDate=2/9/1998
+CustomerID=RICAR OrderID=11059 OrderDate=4/29/1998
+CustomerID=RICSU OrderID=10931 OrderDate=3/6/1998
+CustomerID=RICSU OrderID=10951 OrderDate=3/16/1998
+CustomerID=RICSU OrderID=11033 OrderDate=4/17/1998
+CustomerID=RICSU OrderID=11075 OrderDate=5/6/1998
+CustomerID=ROMEY OrderID=10917 OrderDate=3/2/1998
+CustomerID=ROMEY OrderID=11013 OrderDate=4/9/1998
+CustomerID=SANTG OrderID=10831 OrderDate=1/14/1998
+CustomerID=SANTG OrderID=10909 OrderDate=2/26/1998
+CustomerID=SANTG OrderID=11015 OrderDate=4/10/1998
+CustomerID=SAVEA OrderID=10815 OrderDate=1/5/1998
+CustomerID=SAVEA OrderID=10847 OrderDate=1/22/1998
+CustomerID=SAVEA OrderID=10882 OrderDate=2/11/1998
+CustomerID=SAVEA OrderID=10894 OrderDate=2/18/1998
+CustomerID=SAVEA OrderID=10941 OrderDate=3/11/1998
+CustomerID=SAVEA OrderID=10983 OrderDate=3/27/1998
+CustomerID=SAVEA OrderID=10984 OrderDate=3/30/1998
+CustomerID=SAVEA OrderID=11002 OrderDate=4/6/1998
+CustomerID=SAVEA OrderID=11030 OrderDate=4/17/1998
+CustomerID=SAVEA OrderID=11031 OrderDate=4/17/1998
+CustomerID=SAVEA OrderID=11064 OrderDate=5/1/1998
+CustomerID=SEVES OrderID=10869 OrderDate=2/4/1998
+CustomerID=SIMOB OrderID=11074 OrderDate=5/6/1998
+CustomerID=SPECD OrderID=10907 OrderDate=2/25/1998
+CustomerID=SPECD OrderID=10964 OrderDate=3/20/1998
+CustomerID=SPECD OrderID=11043 OrderDate=4/22/1998
+CustomerID=SPLIR OrderID=10821 OrderDate=1/8/1998
+CustomerID=SPLIR OrderID=10974 OrderDate=3/25/1998
+CustomerID=SUPRD OrderID=10841 OrderDate=1/20/1998
+CustomerID=SUPRD OrderID=10846 OrderDate=1/22/1998
+CustomerID=SUPRD OrderID=10885 OrderDate=2/12/1998
+CustomerID=SUPRD OrderID=10930 OrderDate=3/6/1998
+CustomerID=SUPRD OrderID=11035 OrderDate=4/20/1998
+CustomerID=SUPRD OrderID=11038 OrderDate=4/21/1998
+CustomerID=THEBI OrderID=10992 OrderDate=4/1/1998
+CustomerID=THECR OrderID=11003 OrderDate=4/6/1998
+CustomerID=TOMSP OrderID=10967 OrderDate=3/23/1998
+CustomerID=TORTU OrderID=10842 OrderDate=1/20/1998
+CustomerID=TORTU OrderID=10915 OrderDate=2/27/1998
+CustomerID=TORTU OrderID=11069 OrderDate=5/4/1998
+CustomerID=TRADH OrderID=10830 OrderDate=1/13/1998
+CustomerID=TRADH OrderID=10834 OrderDate=1/15/1998
+CustomerID=TRADH OrderID=10839 OrderDate=1/19/1998
+CustomerID=TRAIH OrderID=10822 OrderDate=1/8/1998
+CustomerID=VAFFE OrderID=10921 OrderDate=3/3/1998
+CustomerID=VAFFE OrderID=10946 OrderDate=3/12/1998
+CustomerID=VAFFE OrderID=10994 OrderDate=4/2/1998
+CustomerID=VICTE OrderID=10814 OrderDate=1/5/1998
+CustomerID=VICTE OrderID=10843 OrderDate=1/21/1998
+CustomerID=VICTE OrderID=10850 OrderDate=1/23/1998
+CustomerID=WANDK OrderID=11046 OrderDate=4/23/1998
+CustomerID=WARTH OrderID=11025 OrderDate=4/15/1998
+CustomerID=WELLI OrderID=10809 OrderDate=1/1/1998
+CustomerID=WELLI OrderID=10900 OrderDate=2/20/1998
+CustomerID=WELLI OrderID=10905 OrderDate=2/24/1998
+CustomerID=WELLI OrderID=10935 OrderDate=3/9/1998
+CustomerID=WHITC OrderID=10861 OrderDate=1/30/1998
+CustomerID=WHITC OrderID=10904 OrderDate=2/24/1998
+CustomerID=WHITC OrderID=11032 OrderDate=4/17/1998
+CustomerID=WHITC OrderID=11066 OrderDate=5/1/1998
+CustomerID=WILMK OrderID=10873 OrderDate=2/6/1998
+CustomerID=WILMK OrderID=10879 OrderDate=2/10/1998
+CustomerID=WILMK OrderID=10910 OrderDate=2/26/1998
+CustomerID=WILMK OrderID=11005 OrderDate=4/7/1998
+CustomerID=WOLZA OrderID=10870 OrderDate=2/4/1998
+CustomerID=WOLZA OrderID=10906 OrderDate=2/25/1998
+CustomerID=WOLZA OrderID=10998 OrderDate=4/3/1998
+CustomerID=WOLZA OrderID=11044 OrderDate=4/23/1998
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq17.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,214 @@
+#summary Projection Operators: SelectMany - from Assignment
+#sidebar SamplesTree
+
+== Projection Operators: SelectMany - from Assignment ==
+
+This sample uses a compound from clause to select all orders where the
order total is greater than 2000.00 and uses from assignment to avoid
requesting the total twice.
+
+=== Code ===
+
+{{{
+public void Linq17() {
+ List<Customer> customers = GetCustomerList();
+
+ var orders =
+ from c in customers
+ from o in c.Orders
+ where o.Total >= 2000.0M
+ select new {c.CustomerID, o.OrderID, o.Total};
+
+ ObjectDumper.Write(orders);
+}
+
+}}}
+
+=== Output ===
+
+{{{
+CustomerID=ANTON OrderID=10573 Total=2082.00
+CustomerID=AROUT OrderID=10558 Total=2142.90
+CustomerID=AROUT OrderID=10953 Total=4441.25
+CustomerID=BERGS OrderID=10384 Total=2222.40
+CustomerID=BERGS OrderID=10524 Total=3192.65
+CustomerID=BERGS OrderID=10672 Total=3815.25
+CustomerID=BERGS OrderID=10857 Total=2048.21
+CustomerID=BLONP OrderID=10360 Total=7390.20
+CustomerID=BOLID OrderID=10801 Total=3026.85
+CustomerID=BONAP OrderID=10340 Total=2436.18
+CustomerID=BONAP OrderID=10511 Total=2550.00
+CustomerID=BOTTM OrderID=10742 Total=3118.00
+CustomerID=BOTTM OrderID=10949 Total=4422.00
+CustomerID=CHOPS OrderID=10519 Total=2314.20
+CustomerID=CHOPS OrderID=10746 Total=2311.70
+CustomerID=COMMI OrderID=10290 Total=2169.00
+CustomerID=EASTC OrderID=10400 Total=3063.00
+CustomerID=EASTC OrderID=10987 Total=2772.00
+CustomerID=EASTC OrderID=11056 Total=3740.00
+CustomerID=ERNSH OrderID=10351 Total=5398.72
+CustomerID=ERNSH OrderID=10382 Total=2900.00
+CustomerID=ERNSH OrderID=10390 Total=2090.88
+CustomerID=ERNSH OrderID=10402 Total=2713.50
+CustomerID=ERNSH OrderID=10430 Total=4899.20
+CustomerID=ERNSH OrderID=10514 Total=8623.45
+CustomerID=ERNSH OrderID=10595 Total=4725.00
+CustomerID=ERNSH OrderID=10633 Total=5510.59
+CustomerID=ERNSH OrderID=10698 Total=3436.44
+CustomerID=ERNSH OrderID=10764 Total=2286.00
+CustomerID=ERNSH OrderID=10773 Total=2030.40
+CustomerID=ERNSH OrderID=10776 Total=6635.28
+CustomerID=ERNSH OrderID=10795 Total=2158.00
+CustomerID=ERNSH OrderID=10836 Total=4705.50
+CustomerID=ERNSH OrderID=10854 Total=2966.50
+CustomerID=ERNSH OrderID=10895 Total=6379.40
+CustomerID=ERNSH OrderID=10979 Total=4813.50
+CustomerID=ERNSH OrderID=10990 Total=4288.85
+CustomerID=ERNSH OrderID=11008 Total=4680.90
+CustomerID=ERNSH OrderID=11017 Total=6750.00
+CustomerID=ERNSH OrderID=11072 Total=5218.00
+CustomerID=FOLIG OrderID=10634 Total=4985.50
+CustomerID=FOLIG OrderID=10789 Total=3687.00
+CustomerID=FOLKO OrderID=10533 Total=2222.20
+CustomerID=FOLKO OrderID=10561 Total=2844.50
+CustomerID=FOLKO OrderID=10703 Total=2545.00
+CustomerID=FOLKO OrderID=10762 Total=4337.00
+CustomerID=FOLKO OrderID=10977 Total=2233.00
+CustomerID=FOLKO OrderID=10993 Total=4895.44
+CustomerID=FOLKO OrderID=11001 Total=2769.00
+CustomerID=FRANK OrderID=10267 Total=3536.60
+CustomerID=FRANK OrderID=10337 Total=2467.00
+CustomerID=FRANK OrderID=10670 Total=2301.75
+CustomerID=FRANK OrderID=11012 Total=2825.30
+CustomerID=GODOS OrderID=10629 Total=2775.05
+CustomerID=GODOS OrderID=10872 Total=2058.46
+CustomerID=GODOS OrderID=10948 Total=2362.25
+CustomerID=GOURL OrderID=10709 Total=3424.00
+CustomerID=GREAL OrderID=10616 Total=4807.00
+CustomerID=GREAL OrderID=10816 Total=8446.45
+CustomerID=HANAR OrderID=10886 Total=3127.50
+CustomerID=HANAR OrderID=10981 Total=15810.00
+CustomerID=HILAA OrderID=10395 Total=2122.92
+CustomerID=HILAA OrderID=10490 Total=3163.20
+CustomerID=HILAA OrderID=10601 Total=2285.00
+CustomerID=HILAA OrderID=10641 Total=2054.00
+CustomerID=HILAA OrderID=10796 Total=2341.36
+CustomerID=HUNGO OrderID=10298 Total=2645.00
+CustomerID=HUNGO OrderID=10335 Total=2036.16
+CustomerID=HUNGO OrderID=10503 Total=2048.50
+CustomerID=HUNGO OrderID=10516 Total=2381.05
+CustomerID=HUNGO OrderID=10567 Total=2519.00
+CustomerID=HUNGO OrderID=10687 Total=4960.90
+CustomerID=HUNGO OrderID=10701 Total=2864.50
+CustomerID=HUNGO OrderID=10897 Total=10835.24
+CustomerID=HUNGO OrderID=10912 Total=6200.55
+CustomerID=HUNGO OrderID=10985 Total=2023.38
+CustomerID=KOENE OrderID=10718 Total=3463.00
+CustomerID=KOENE OrderID=10817 Total=10952.84
+CustomerID=KOENE OrderID=10893 Total=5502.11
+CustomerID=KOENE OrderID=11028 Total=2160.00
+CustomerID=LAMAI OrderID=10413 Total=2123.20
+CustomerID=LAMAI OrderID=10787 Total=2622.76
+CustomerID=LEHMS OrderID=10522 Total=2318.24
+CustomerID=LEHMS OrderID=10772 Total=3603.22
+CustomerID=LILAS OrderID=10823 Total=2826.00
+CustomerID=LINOD OrderID=10638 Total=2720.05
+CustomerID=LINOD OrderID=11039 Total=3090.00
+CustomerID=MAISD OrderID=10760 Total=2917.00
+CustomerID=MAISD OrderID=10892 Total=2090.00
+CustomerID=MEREP OrderID=10339 Total=3354.00
+CustomerID=MEREP OrderID=10424 Total=9194.56
+CustomerID=MEREP OrderID=10570 Total=2465.25
+CustomerID=MEREP OrderID=10605 Total=4109.70
+CustomerID=MEREP OrderID=10618 Total=2697.50
+CustomerID=MORGK OrderID=10575 Total=2147.40
+CustomerID=OCEAN OrderID=10986 Total=2220.00
+CustomerID=OLDWO OrderID=10305 Total=3741.30
+CustomerID=OLDWO OrderID=10855 Total=2227.89
+CustomerID=OTTIK OrderID=10766 Total=2310.00
+CustomerID=PICCO OrderID=10353 Total=8593.28
+CustomerID=PICCO OrderID=10530 Total=4180.00
+CustomerID=PICCO OrderID=11053 Total=3055.00
+CustomerID=PRINI OrderID=11007 Total=2633.90
+CustomerID=QUEEN OrderID=10372 Total=9210.90
+CustomerID=QUEEN OrderID=10637 Total=2761.94
+CustomerID=QUEEN OrderID=11068 Total=2027.08
+CustomerID=QUICK OrderID=10273 Total=2037.28
+CustomerID=QUICK OrderID=10286 Total=3016.00
+CustomerID=QUICK OrderID=10345 Total=2924.80
+CustomerID=QUICK OrderID=10361 Total=2046.24
+CustomerID=QUICK OrderID=10451 Total=3849.66
+CustomerID=QUICK OrderID=10515 Total=9921.30
+CustomerID=QUICK OrderID=10540 Total=10191.70
+CustomerID=QUICK OrderID=10549 Total=3554.28
+CustomerID=QUICK OrderID=10588 Total=3120.00
+CustomerID=QUICK OrderID=10658 Total=4464.60
+CustomerID=QUICK OrderID=10691 Total=10164.80
+CustomerID=QUICK OrderID=10694 Total=4825.00
+CustomerID=QUICK OrderID=10745 Total=4529.80
+CustomerID=QUICK OrderID=10845 Total=3812.70
+CustomerID=QUICK OrderID=10865 Total=16387.50
+CustomerID=QUICK OrderID=10938 Total=2731.88
+CustomerID=QUICK OrderID=10962 Total=3584.00
+CustomerID=QUICK OrderID=10991 Total=2296.00
+CustomerID=QUICK OrderID=11021 Total=6306.24
+CustomerID=RATTC OrderID=10314 Total=2094.30
+CustomerID=RATTC OrderID=10316 Total=2835.00
+CustomerID=RATTC OrderID=10401 Total=3868.60
+CustomerID=RATTC OrderID=10479 Total=10495.60
+CustomerID=RATTC OrderID=10598 Total=2388.50
+CustomerID=RATTC OrderID=10852 Total=2984.00
+CustomerID=RATTC OrderID=10889 Total=11380.00
+CustomerID=RATTC OrderID=10988 Total=3574.80
+CustomerID=RICAR OrderID=10851 Total=2603.00
+CustomerID=RICSU OrderID=10255 Total=2490.50
+CustomerID=RICSU OrderID=10419 Total=2097.60
+CustomerID=RICSU OrderID=10666 Total=4666.94
+CustomerID=RICSU OrderID=11033 Total=3232.80
+CustomerID=SANTG OrderID=10831 Total=2684.40
+CustomerID=SAVEA OrderID=10324 Total=5275.72
+CustomerID=SAVEA OrderID=10393 Total=2556.95
+CustomerID=SAVEA OrderID=10398 Total=2505.60
+CustomerID=SAVEA OrderID=10440 Total=4924.14
+CustomerID=SAVEA OrderID=10452 Total=2018.50
+CustomerID=SAVEA OrderID=10510 Total=4707.54
+CustomerID=SAVEA OrderID=10555 Total=2944.40
+CustomerID=SAVEA OrderID=10607 Total=6475.40
+CustomerID=SAVEA OrderID=10612 Total=6375.00
+CustomerID=SAVEA OrderID=10657 Total=4371.60
+CustomerID=SAVEA OrderID=10678 Total=5256.50
+CustomerID=SAVEA OrderID=10711 Total=4451.70
+CustomerID=SAVEA OrderID=10713 Total=2827.90
+CustomerID=SAVEA OrderID=10714 Total=2205.75
+CustomerID=SAVEA OrderID=10748 Total=2196.00
+CustomerID=SAVEA OrderID=10757 Total=3082.00
+CustomerID=SAVEA OrderID=10847 Total=4931.92
+CustomerID=SAVEA OrderID=10894 Total=2753.10
+CustomerID=SAVEA OrderID=10941 Total=4011.75
+CustomerID=SAVEA OrderID=11030 Total=12615.05
+CustomerID=SAVEA OrderID=11031 Total=2393.50
+CustomerID=SAVEA OrderID=11064 Total=4330.40
+CustomerID=SEVES OrderID=10359 Total=3471.68
+CustomerID=SEVES OrderID=10523 Total=2444.31
+CustomerID=SEVES OrderID=10804 Total=2278.40
+CustomerID=SIMOB OrderID=10417 Total=11188.40
+CustomerID=SIMOB OrderID=10802 Total=2942.81
+CustomerID=SPECD OrderID=10964 Total=2052.50
+CustomerID=SPLIR OrderID=10329 Total=4578.43
+CustomerID=SPLIR OrderID=10369 Total=2390.40
+CustomerID=SUPRD OrderID=10252 Total=3597.90
+CustomerID=SUPRD OrderID=10302 Total=2708.80
+CustomerID=SUPRD OrderID=10458 Total=3891.00
+CustomerID=SUPRD OrderID=10841 Total=4581.00
+CustomerID=SUPRD OrderID=10930 Total=2255.50
+CustomerID=THEBI OrderID=10805 Total=2775.00
+CustomerID=TORTU OrderID=10518 Total=4150.05
+CustomerID=VAFFE OrderID=10465 Total=2518.00
+CustomerID=VAFFE OrderID=10688 Total=3160.60
+CustomerID=VICTE OrderID=10546 Total=2812.00
+CustomerID=WARTH OrderID=10455 Total=2684.00
+CustomerID=WARTH OrderID=10583 Total=2237.50
+CustomerID=WHITC OrderID=10344 Total=2296.00
+CustomerID=WHITC OrderID=10693 Total=2071.20
+CustomerID=WHITC OrderID=10861 Total=3523.40
+CustomerID=WHITC OrderID=11032 Total=8902.50
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq18.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,49 @@
+#summary Projection Operators: SelectMany - Multiple from
+#sidebar SamplesTree
+
+== Projection Operators: SelectMany - Multiple from ==
+
+This sample uses multiple from clauses so that filtering on customers can
be done before selecting their orders. This makes the query more efficient
by not selecting and then discarding orders for customers outside of
Washington.
+
+=== Code ===
+
+{{{
+public void Linq18() {
+ List<Customer> customers = GetCustomerList();
+
+ DateTime cutoffDate = new DateTime(1997, 1, 1);
+
+ var orders =
+ from c in customers
+ where c.Region == "WA"
+ from o in c.Orders
+ where o.OrderDate >= cutoffDate
+ select new {c.CustomerID, o.OrderID};
+
+ ObjectDumper.Write(orders);
+}
+
+}}}
+
+=== Output ===
+
+{{{
+CustomerID=LAZYK OrderID=10482
+CustomerID=LAZYK OrderID=10545
+CustomerID=TRAIH OrderID=10574
+CustomerID=TRAIH OrderID=10577
+CustomerID=TRAIH OrderID=10822
+CustomerID=WHITC OrderID=10469
+CustomerID=WHITC OrderID=10483
+CustomerID=WHITC OrderID=10504
+CustomerID=WHITC OrderID=10596
+CustomerID=WHITC OrderID=10693
+CustomerID=WHITC OrderID=10696
+CustomerID=WHITC OrderID=10723
+CustomerID=WHITC OrderID=10740
+CustomerID=WHITC OrderID=10861
+CustomerID=WHITC OrderID=10904
+CustomerID=WHITC OrderID=11032
+CustomerID=WHITC OrderID=11066
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq19.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,859 @@
+#summary Projection Operators: SelectMany - Indexed
+#sidebar SamplesTree
+
+== Projection Operators: SelectMany - Indexed ==
+
+This sample uses an indexed SelectMany clause to select all orders, while
referring to customers by the order in which they are returned from the
query.
+
+=== Code ===
+
+{{{
+public void Linq19() {
+ List<Customer> customers = GetCustomerList();
+
+ var customerOrders =
+ customers.SelectMany(
+ (cust, custIndex) =>
+ cust.Orders.Select(o => "Customer #" + (custIndex + 1) +
+ " has an order with OrderID " +
o.OrderID) );
+
+ ObjectDumper.Write(customerOrders);
+}
+
+}}}
+
+=== Output ===
+
+{{{
+Customer #1 has an order with OrderID 10643
+Customer #1 has an order with OrderID 10692
+Customer #1 has an order with OrderID 10702
+Customer #1 has an order with OrderID 10835
+Customer #1 has an order with OrderID 10952
+Customer #1 has an order with OrderID 11011
+Customer #2 has an order with OrderID 10308
+Customer #2 has an order with OrderID 10625
+Customer #2 has an order with OrderID 10759
+Customer #2 has an order with OrderID 10926
+Customer #3 has an order with OrderID 10365
+Customer #3 has an order with OrderID 10507
+Customer #3 has an order with OrderID 10535
+Customer #3 has an order with OrderID 10573
+Customer #3 has an order with OrderID 10677
+Customer #3 has an order with OrderID 10682
+Customer #3 has an order with OrderID 10856
+Customer #4 has an order with OrderID 10355
+Customer #4 has an order with OrderID 10383
+Customer #4 has an order with OrderID 10453
+Customer #4 has an order with OrderID 10558
+Customer #4 has an order with OrderID 10707
+Customer #4 has an order with OrderID 10741
+Customer #4 has an order with OrderID 10743
+Customer #4 has an order with OrderID 10768
+Customer #4 has an order with OrderID 10793
+Customer #4 has an order with OrderID 10864
+Customer #4 has an order with OrderID 10920
+Customer #4 has an order with OrderID 10953
+Customer #4 has an order with OrderID 11016
+Customer #5 has an order with OrderID 10278
+Customer #5 has an order with OrderID 10280
+Customer #5 has an order with OrderID 10384
+Customer #5 has an order with OrderID 10444
+Customer #5 has an order with OrderID 10445
+Customer #5 has an order with OrderID 10524
+Customer #5 has an order with OrderID 10572
+Customer #5 has an order with OrderID 10626
+Customer #5 has an order with OrderID 10654
+Customer #5 has an order with OrderID 10672
+Customer #5 has an order with OrderID 10689
+Customer #5 has an order with OrderID 10733
+Customer #5 has an order with OrderID 10778
+Customer #5 has an order with OrderID 10837
+Customer #5 has an order with OrderID 10857
+Customer #5 has an order with OrderID 10866
+Customer #5 has an order with OrderID 10875
+Customer #5 has an order with OrderID 10924
+Customer #6 has an order with OrderID 10501
+Customer #6 has an order with OrderID 10509
+Customer #6 has an order with OrderID 10582
+Customer #6 has an order with OrderID 10614
+Customer #6 has an order with OrderID 10853
+Customer #6 has an order with OrderID 10956
+Customer #6 has an order with OrderID 11058
+Customer #7 has an order with OrderID 10265
+Customer #7 has an order with OrderID 10297
+Customer #7 has an order with OrderID 10360
+Customer #7 has an order with OrderID 10436
+Customer #7 has an order with OrderID 10449
+Customer #7 has an order with OrderID 10559
+Customer #7 has an order with OrderID 10566
+Customer #7 has an order with OrderID 10584
+Customer #7 has an order with OrderID 10628
+Customer #7 has an order with OrderID 10679
+Customer #7 has an order with OrderID 10826
+Customer #8 has an order with OrderID 10326
+Customer #8 has an order with OrderID 10801
+Customer #8 has an order with OrderID 10970
+Customer #9 has an order with OrderID 10331
+Customer #9 has an order with OrderID 10340
+Customer #9 has an order with OrderID 10362
+Customer #9 has an order with OrderID 10470
+Customer #9 has an order with OrderID 10511
+Customer #9 has an order with OrderID 10525
+Customer #9 has an order with OrderID 10663
+Customer #9 has an order with OrderID 10715
+Customer #9 has an order with OrderID 10730
+Customer #9 has an order with OrderID 10732
+Customer #9 has an order with OrderID 10755
+Customer #9 has an order with OrderID 10827
+Customer #9 has an order with OrderID 10871
+Customer #9 has an order with OrderID 10876
+Customer #9 has an order with OrderID 10932
+Customer #9 has an order with OrderID 10940
+Customer #9 has an order with OrderID 11076
+Customer #10 has an order with OrderID 10389
+Customer #10 has an order with OrderID 10410
+Customer #10 has an order with OrderID 10411
+Customer #10 has an order with OrderID 10431
+Customer #10 has an order with OrderID 10492
+Customer #10 has an order with OrderID 10742
+Customer #10 has an order with OrderID 10918
+Customer #10 has an order with OrderID 10944
+Customer #10 has an order with OrderID 10949
+Customer #10 has an order with OrderID 10975
+Customer #10 has an order with OrderID 10982
+Customer #10 has an order with OrderID 11027
+Customer #10 has an order with OrderID 11045
+Customer #10 has an order with OrderID 11048
+Customer #11 has an order with OrderID 10289
+Customer #11 has an order with OrderID 10471
+Customer #11 has an order with OrderID 10484
+Customer #11 has an order with OrderID 10538
+Customer #11 has an order with OrderID 10539
+Customer #11 has an order with OrderID 10578
+Customer #11 has an order with OrderID 10599
+Customer #11 has an order with OrderID 10943
+Customer #11 has an order with OrderID 10947
+Customer #11 has an order with OrderID 11023
+Customer #12 has an order with OrderID 10521
+Customer #12 has an order with OrderID 10782
+Customer #12 has an order with OrderID 10819
+Customer #12 has an order with OrderID 10881
+Customer #12 has an order with OrderID 10937
+Customer #12 has an order with OrderID 11054
+Customer #13 has an order with OrderID 10259
+Customer #14 has an order with OrderID 10254
+Customer #14 has an order with OrderID 10370
+Customer #14 has an order with OrderID 10519
+Customer #14 has an order with OrderID 10731
+Customer #14 has an order with OrderID 10746
+Customer #14 has an order with OrderID 10966
+Customer #14 has an order with OrderID 11029
+Customer #14 has an order with OrderID 11041
+Customer #15 has an order with OrderID 10290
+Customer #15 has an order with OrderID 10466
+Customer #15 has an order with OrderID 10494
+Customer #15 has an order with OrderID 10969
+Customer #15 has an order with OrderID 11042
+Customer #16 has an order with OrderID 10435
+Customer #16 has an order with OrderID 10462
+Customer #16 has an order with OrderID 10848
+Customer #17 has an order with OrderID 10363
+Customer #17 has an order with OrderID 10391
+Customer #17 has an order with OrderID 10797
+Customer #17 has an order with OrderID 10825
+Customer #17 has an order with OrderID 11036
+Customer #17 has an order with OrderID 11067
+Customer #18 has an order with OrderID 10311
+Customer #18 has an order with OrderID 10609
+Customer #18 has an order with OrderID 10683
+Customer #18 has an order with OrderID 10890
+Customer #19 has an order with OrderID 10364
+Customer #19 has an order with OrderID 10400
+Customer #19 has an order with OrderID 10532
+Customer #19 has an order with OrderID 10726
+Customer #19 has an order with OrderID 10987
+Customer #19 has an order with OrderID 11024
+Customer #19 has an order with OrderID 11047
+Customer #19 has an order with OrderID 11056
+Customer #20 has an order with OrderID 10258
+Customer #20 has an order with OrderID 10263
+Customer #20 has an order with OrderID 10351
+Customer #20 has an order with OrderID 10368
+Customer #20 has an order with OrderID 10382
+Customer #20 has an order with OrderID 10390
+Customer #20 has an order with OrderID 10402
+Customer #20 has an order with OrderID 10403
+Customer #20 has an order with OrderID 10430
+Customer #20 has an order with OrderID 10442
+Customer #20 has an order with OrderID 10514
+Customer #20 has an order with OrderID 10571
+Customer #20 has an order with OrderID 10595
+Customer #20 has an order with OrderID 10633
+Customer #20 has an order with OrderID 10667
+Customer #20 has an order with OrderID 10698
+Customer #20 has an order with OrderID 10764
+Customer #20 has an order with OrderID 10771
+Customer #20 has an order with OrderID 10773
+Customer #20 has an order with OrderID 10776
+Customer #20 has an order with OrderID 10795
+Customer #20 has an order with OrderID 10836
+Customer #20 has an order with OrderID 10854
+Customer #20 has an order with OrderID 10895
+Customer #20 has an order with OrderID 10968
+Customer #20 has an order with OrderID 10979
+Customer #20 has an order with OrderID 10990
+Customer #20 has an order with OrderID 11008
+Customer #20 has an order with OrderID 11017
+Customer #20 has an order with OrderID 11072
+Customer #21 has an order with OrderID 10347
+Customer #21 has an order with OrderID 10386
+Customer #21 has an order with OrderID 10414
+Customer #21 has an order with OrderID 10512
+Customer #21 has an order with OrderID 10581
+Customer #21 has an order with OrderID 10650
+Customer #21 has an order with OrderID 10725
+Customer #23 has an order with OrderID 10408
+Customer #23 has an order with OrderID 10480
+Customer #23 has an order with OrderID 10634
+Customer #23 has an order with OrderID 10763
+Customer #23 has an order with OrderID 10789
+Customer #24 has an order with OrderID 10264
+Customer #24 has an order with OrderID 10327
+Customer #24 has an order with OrderID 10378
+Customer #24 has an order with OrderID 10434
+Customer #24 has an order with OrderID 10460
+Customer #24 has an order with OrderID 10533
+Customer #24 has an order with OrderID 10561
+Customer #24 has an order with OrderID 10703
+Customer #24 has an order with OrderID 10762
+Customer #24 has an order with OrderID 10774
+Customer #24 has an order with OrderID 10824
+Customer #24 has an order with OrderID 10880
+Customer #24 has an order with OrderID 10902
+Customer #24 has an order with OrderID 10955
+Customer #24 has an order with OrderID 10977
+Customer #24 has an order with OrderID 10980
+Customer #24 has an order with OrderID 10993
+Customer #24 has an order with OrderID 11001
+Customer #24 has an order with OrderID 11050
+Customer #25 has an order with OrderID 10267
+Customer #25 has an order with OrderID 10337
+Customer #25 has an order with OrderID 10342
+Customer #25 has an order with OrderID 10396
+Customer #25 has an order with OrderID 10488
+Customer #25 has an order with OrderID 10560
+Customer #25 has an order with OrderID 10623
+Customer #25 has an order with OrderID 10653
+Customer #25 has an order with OrderID 10670
+Customer #25 has an order with OrderID 10675
+Customer #25 has an order with OrderID 10717
+Customer #25 has an order with OrderID 10791
+Customer #25 has an order with OrderID 10859
+Customer #25 has an order with OrderID 10929
+Customer #25 has an order with OrderID 11012
+Customer #26 has an order with OrderID 10671
+Customer #26 has an order with OrderID 10860
+Customer #26 has an order with OrderID 10971
+Customer #27 has an order with OrderID 10422
+Customer #27 has an order with OrderID 10710
+Customer #27 has an order with OrderID 10753
+Customer #27 has an order with OrderID 10807
+Customer #27 has an order with OrderID 11026
+Customer #27 has an order with OrderID 11060
+Customer #28 has an order with OrderID 10328
+Customer #28 has an order with OrderID 10352
+Customer #28 has an order with OrderID 10464
+Customer #28 has an order with OrderID 10491
+Customer #28 has an order with OrderID 10551
+Customer #28 has an order with OrderID 10604
+Customer #28 has an order with OrderID 10664
+Customer #28 has an order with OrderID 10963
+Customer #29 has an order with OrderID 10366
+Customer #29 has an order with OrderID 10426
+Customer #29 has an order with OrderID 10568
+Customer #29 has an order with OrderID 10887
+Customer #29 has an order with OrderID 10928
+Customer #30 has an order with OrderID 10303
+Customer #30 has an order with OrderID 10550
+Customer #30 has an order with OrderID 10629
+Customer #30 has an order with OrderID 10872
+Customer #30 has an order with OrderID 10874
+Customer #30 has an order with OrderID 10888
+Customer #30 has an order with OrderID 10911
+Customer #30 has an order with OrderID 10948
+Customer #30 has an order with OrderID 11009
+Customer #30 has an order with OrderID 11037
+Customer #31 has an order with OrderID 10423
+Customer #31 has an order with OrderID 10652
+Customer #31 has an order with OrderID 10685
+Customer #31 has an order with OrderID 10709
+Customer #31 has an order with OrderID 10734
+Customer #31 has an order with OrderID 10777
+Customer #31 has an order with OrderID 10790
+Customer #31 has an order with OrderID 10959
+Customer #31 has an order with OrderID 11049
+Customer #32 has an order with OrderID 10528
+Customer #32 has an order with OrderID 10589
+Customer #32 has an order with OrderID 10616
+Customer #32 has an order with OrderID 10617
+Customer #32 has an order with OrderID 10656
+Customer #32 has an order with OrderID 10681
+Customer #32 has an order with OrderID 10816
+Customer #32 has an order with OrderID 10936
+Customer #32 has an order with OrderID 11006
+Customer #32 has an order with OrderID 11040
+Customer #32 has an order with OrderID 11061
+Customer #33 has an order with OrderID 10268
+Customer #33 has an order with OrderID 10785
+Customer #34 has an order with OrderID 10250
+Customer #34 has an order with OrderID 10253
+Customer #34 has an order with OrderID 10541
+Customer #34 has an order with OrderID 10645
+Customer #34 has an order with OrderID 10690
+Customer #34 has an order with OrderID 10770
+Customer #34 has an order with OrderID 10783
+Customer #34 has an order with OrderID 10886
+Customer #34 has an order with OrderID 10903
+Customer #34 has an order with OrderID 10922
+Customer #34 has an order with OrderID 10925
+Customer #34 has an order with OrderID 10981
+Customer #34 has an order with OrderID 11022
+Customer #34 has an order with OrderID 11052
+Customer #35 has an order with OrderID 10257
+Customer #35 has an order with OrderID 10395
+Customer #35 has an order with OrderID 10476
+Customer #35 has an order with OrderID 10486
+Customer #35 has an order with OrderID 10490
+Customer #35 has an order with OrderID 10498
+Customer #35 has an order with OrderID 10552
+Customer #35 has an order with OrderID 10601
+Customer #35 has an order with OrderID 10613
+Customer #35 has an order with OrderID 10641
+Customer #35 has an order with OrderID 10705
+Customer #35 has an order with OrderID 10796
+Customer #35 has an order with OrderID 10863
+Customer #35 has an order with OrderID 10901
+Customer #35 has an order with OrderID 10957
+Customer #35 has an order with OrderID 10960
+Customer #35 has an order with OrderID 10976
+Customer #35 has an order with OrderID 11055
+Customer #36 has an order with OrderID 10375
+Customer #36 has an order with OrderID 10394
+Customer #36 has an order with OrderID 10415
+Customer #36 has an order with OrderID 10600
+Customer #36 has an order with OrderID 10660
+Customer #37 has an order with OrderID 10298
+Customer #37 has an order with OrderID 10309
+Customer #37 has an order with OrderID 10335
+Customer #37 has an order with OrderID 10373
+Customer #37 has an order with OrderID 10380
+Customer #37 has an order with OrderID 10429
+Customer #37 has an order with OrderID 10503
+Customer #37 has an order with OrderID 10516
+Customer #37 has an order with OrderID 10567
+Customer #37 has an order with OrderID 10646
+Customer #37 has an order with OrderID 10661
+Customer #37 has an order with OrderID 10687
+Customer #37 has an order with OrderID 10701
+Customer #37 has an order with OrderID 10712
+Customer #37 has an order with OrderID 10736
+Customer #37 has an order with OrderID 10897
+Customer #37 has an order with OrderID 10912
+Customer #37 has an order with OrderID 10985
+Customer #37 has an order with OrderID 11063
+Customer #38 has an order with OrderID 10315
+Customer #38 has an order with OrderID 10318
+Customer #38 has an order with OrderID 10321
+Customer #38 has an order with OrderID 10473
+Customer #38 has an order with OrderID 10621
+Customer #38 has an order with OrderID 10674
+Customer #38 has an order with OrderID 10749
+Customer #38 has an order with OrderID 10798
+Customer #38 has an order with OrderID 10829
+Customer #38 has an order with OrderID 10933
+Customer #39 has an order with OrderID 10323
+Customer #39 has an order with OrderID 10325
+Customer #39 has an order with OrderID 10456
+Customer #39 has an order with OrderID 10457
+Customer #39 has an order with OrderID 10468
+Customer #39 has an order with OrderID 10506
+Customer #39 has an order with OrderID 10542
+Customer #39 has an order with OrderID 10630
+Customer #39 has an order with OrderID 10718
+Customer #39 has an order with OrderID 10799
+Customer #39 has an order with OrderID 10817
+Customer #39 has an order with OrderID 10849
+Customer #39 has an order with OrderID 10893
+Customer #39 has an order with OrderID 11028
+Customer #40 has an order with OrderID 10858
+Customer #40 has an order with OrderID 10927
+Customer #40 has an order with OrderID 10972
+Customer #40 has an order with OrderID 10973
+Customer #41 has an order with OrderID 10350
+Customer #41 has an order with OrderID 10358
+Customer #41 has an order with OrderID 10371
+Customer #41 has an order with OrderID 10413
+Customer #41 has an order with OrderID 10425
+Customer #41 has an order with OrderID 10454
+Customer #41 has an order with OrderID 10493
+Customer #41 has an order with OrderID 10500
+Customer #41 has an order with OrderID 10610
+Customer #41 has an order with OrderID 10631
+Customer #41 has an order with OrderID 10787
+Customer #41 has an order with OrderID 10832
+Customer #41 has an order with OrderID 10923
+Customer #41 has an order with OrderID 11051
+Customer #42 has an order with OrderID 10495
+Customer #42 has an order with OrderID 10620
+Customer #42 has an order with OrderID 10810
+Customer #43 has an order with OrderID 10482
+Customer #43 has an order with OrderID 10545
+Customer #44 has an order with OrderID 10279
+Customer #44 has an order with OrderID 10284
+Customer #44 has an order with OrderID 10343
+Customer #44 has an order with OrderID 10497
+Customer #44 has an order with OrderID 10522
+Customer #44 has an order with OrderID 10534
+Customer #44 has an order with OrderID 10536
+Customer #44 has an order with OrderID 10557
+Customer #44 has an order with OrderID 10592
+Customer #44 has an order with OrderID 10593
+Customer #44 has an order with OrderID 10772
+Customer #44 has an order with OrderID 10862
+Customer #44 has an order with OrderID 10891
+Customer #44 has an order with OrderID 10934
+Customer #44 has an order with OrderID 11070
+Customer #45 has an order with OrderID 10579
+Customer #45 has an order with OrderID 10719
+Customer #45 has an order with OrderID 10735
+Customer #45 has an order with OrderID 10884
+Customer #46 has an order with OrderID 10283
+Customer #46 has an order with OrderID 10296
+Customer #46 has an order with OrderID 10330
+Customer #46 has an order with OrderID 10357
+Customer #46 has an order with OrderID 10381
+Customer #46 has an order with OrderID 10461
+Customer #46 has an order with OrderID 10499
+Customer #46 has an order with OrderID 10543
+Customer #46 has an order with OrderID 10780
+Customer #46 has an order with OrderID 10823
+Customer #46 has an order with OrderID 10899
+Customer #46 has an order with OrderID 10997
+Customer #46 has an order with OrderID 11065
+Customer #46 has an order with OrderID 11071
+Customer #47 has an order with OrderID 10405
+Customer #47 has an order with OrderID 10485
+Customer #47 has an order with OrderID 10638
+Customer #47 has an order with OrderID 10697
+Customer #47 has an order with OrderID 10729
+Customer #47 has an order with OrderID 10811
+Customer #47 has an order with OrderID 10838
+Customer #47 has an order with OrderID 10840
+Customer #47 has an order with OrderID 10919
+Customer #47 has an order with OrderID 10954
+Customer #47 has an order with OrderID 11014
+Customer #47 has an order with OrderID 11039
+Customer #48 has an order with OrderID 10307
+Customer #48 has an order with OrderID 10317
+Customer #48 has an order with OrderID 10544
+Customer #48 has an order with OrderID 10662
+Customer #48 has an order with OrderID 10665
+Customer #48 has an order with OrderID 10867
+Customer #48 has an order with OrderID 10883
+Customer #48 has an order with OrderID 11018
+Customer #49 has an order with OrderID 10275
+Customer #49 has an order with OrderID 10300
+Customer #49 has an order with OrderID 10404
+Customer #49 has an order with OrderID 10467
+Customer #49 has an order with OrderID 10635
+Customer #49 has an order with OrderID 10754
+Customer #49 has an order with OrderID 10784
+Customer #49 has an order with OrderID 10818
+Customer #49 has an order with OrderID 10939
+Customer #49 has an order with OrderID 10950
+Customer #50 has an order with OrderID 10529
+Customer #50 has an order with OrderID 10649
+Customer #50 has an order with OrderID 10760
+Customer #50 has an order with OrderID 10892
+Customer #50 has an order with OrderID 10896
+Customer #50 has an order with OrderID 10978
+Customer #50 has an order with OrderID 11004
+Customer #51 has an order with OrderID 10332
+Customer #51 has an order with OrderID 10339
+Customer #51 has an order with OrderID 10376
+Customer #51 has an order with OrderID 10424
+Customer #51 has an order with OrderID 10439
+Customer #51 has an order with OrderID 10505
+Customer #51 has an order with OrderID 10565
+Customer #51 has an order with OrderID 10570
+Customer #51 has an order with OrderID 10590
+Customer #51 has an order with OrderID 10605
+Customer #51 has an order with OrderID 10618
+Customer #51 has an order with OrderID 10619
+Customer #51 has an order with OrderID 10724
+Customer #52 has an order with OrderID 10277
+Customer #52 has an order with OrderID 10575
+Customer #52 has an order with OrderID 10699
+Customer #52 has an order with OrderID 10779
+Customer #52 has an order with OrderID 10945
+Customer #53 has an order with OrderID 10517
+Customer #53 has an order with OrderID 10752
+Customer #53 has an order with OrderID 11057
+Customer #54 has an order with OrderID 10409
+Customer #54 has an order with OrderID 10531
+Customer #54 has an order with OrderID 10898
+Customer #54 has an order with OrderID 10958
+Customer #54 has an order with OrderID 10986
+Customer #55 has an order with OrderID 10260
+Customer #55 has an order with OrderID 10305
+Customer #55 has an order with OrderID 10338
+Customer #55 has an order with OrderID 10441
+Customer #55 has an order with OrderID 10594
+Customer #55 has an order with OrderID 10680
+Customer #55 has an order with OrderID 10706
+Customer #55 has an order with OrderID 10855
+Customer #55 has an order with OrderID 10965
+Customer #55 has an order with OrderID 11034
+Customer #56 has an order with OrderID 10407
+Customer #56 has an order with OrderID 10508
+Customer #56 has an order with OrderID 10554
+Customer #56 has an order with OrderID 10580
+Customer #56 has an order with OrderID 10684
+Customer #56 has an order with OrderID 10766
+Customer #56 has an order with OrderID 10833
+Customer #56 has an order with OrderID 10999
+Customer #56 has an order with OrderID 11020
+Customer #58 has an order with OrderID 10322
+Customer #58 has an order with OrderID 10354
+Customer #58 has an order with OrderID 10474
+Customer #58 has an order with OrderID 10502
+Customer #58 has an order with OrderID 10995
+Customer #58 has an order with OrderID 11073
+Customer #59 has an order with OrderID 10353
+Customer #59 has an order with OrderID 10392
+Customer #59 has an order with OrderID 10427
+Customer #59 has an order with OrderID 10489
+Customer #59 has an order with OrderID 10530
+Customer #59 has an order with OrderID 10597
+Customer #59 has an order with OrderID 10686
+Customer #59 has an order with OrderID 10747
+Customer #59 has an order with OrderID 10844
+Customer #59 has an order with OrderID 11053
+Customer #60 has an order with OrderID 10336
+Customer #60 has an order with OrderID 10397
+Customer #60 has an order with OrderID 10433
+Customer #60 has an order with OrderID 10477
+Customer #60 has an order with OrderID 10808
+Customer #60 has an order with OrderID 11007
+Customer #61 has an order with OrderID 10261
+Customer #61 has an order with OrderID 10291
+Customer #61 has an order with OrderID 10379
+Customer #61 has an order with OrderID 10421
+Customer #61 has an order with OrderID 10587
+Customer #61 has an order with OrderID 10647
+Customer #61 has an order with OrderID 10720
+Customer #61 has an order with OrderID 10794
+Customer #61 has an order with OrderID 10989
+Customer #62 has an order with OrderID 10372
+Customer #62 has an order with OrderID 10406
+Customer #62 has an order with OrderID 10487
+Customer #62 has an order with OrderID 10637
+Customer #62 has an order with OrderID 10659
+Customer #62 has an order with OrderID 10704
+Customer #62 has an order with OrderID 10728
+Customer #62 has an order with OrderID 10786
+Customer #62 has an order with OrderID 10868
+Customer #62 has an order with OrderID 10913
+Customer #62 has an order with OrderID 10914
+Customer #62 has an order with OrderID 10961
+Customer #62 has an order with OrderID 11068
+Customer #63 has an order with OrderID 10273
+Customer #63 has an order with OrderID 10285
+Customer #63 has an order with OrderID 10286
+Customer #63 has an order with OrderID 10313
+Customer #63 has an order with OrderID 10345
+Customer #63 has an order with OrderID 10361
+Customer #63 has an order with OrderID 10418
+Customer #63 has an order with OrderID 10451
+Customer #63 has an order with OrderID 10515
+Customer #63 has an order with OrderID 10527
+Customer #63 has an order with OrderID 10540
+Customer #63 has an order with OrderID 10549
+Customer #63 has an order with OrderID 10588
+Customer #63 has an order with OrderID 10658
+Customer #63 has an order with OrderID 10691
+Customer #63 has an order with OrderID 10694
+Customer #63 has an order with OrderID 10721
+Customer #63 has an order with OrderID 10745
+Customer #63 has an order with OrderID 10765
+Customer #63 has an order with OrderID 10788
+Customer #63 has an order with OrderID 10845
+Customer #63 has an order with OrderID 10865
+Customer #63 has an order with OrderID 10878
+Customer #63 has an order with OrderID 10938
+Customer #63 has an order with OrderID 10962
+Customer #63 has an order with OrderID 10991
+Customer #63 has an order with OrderID 10996
+Customer #63 has an order with OrderID 11021
+Customer #64 has an order with OrderID 10448
+Customer #64 has an order with OrderID 10716
+Customer #64 has an order with OrderID 10828
+Customer #64 has an order with OrderID 10916
+Customer #64 has an order with OrderID 11019
+Customer #65 has an order with OrderID 10262
+Customer #65 has an order with OrderID 10272
+Customer #65 has an order with OrderID 10294
+Customer #65 has an order with OrderID 10314
+Customer #65 has an order with OrderID 10316
+Customer #65 has an order with OrderID 10346
+Customer #65 has an order with OrderID 10401
+Customer #65 has an order with OrderID 10479
+Customer #65 has an order with OrderID 10564
+Customer #65 has an order with OrderID 10569
+Customer #65 has an order with OrderID 10598
+Customer #65 has an order with OrderID 10761
+Customer #65 has an order with OrderID 10820
+Customer #65 has an order with OrderID 10852
+Customer #65 has an order with OrderID 10889
+Customer #65 has an order with OrderID 10988
+Customer #65 has an order with OrderID 11000
+Customer #65 has an order with OrderID 11077
+Customer #66 has an order with OrderID 10288
+Customer #66 has an order with OrderID 10428
+Customer #66 has an order with OrderID 10443
+Customer #66 has an order with OrderID 10562
+Customer #66 has an order with OrderID 10586
+Customer #66 has an order with OrderID 10655
+Customer #66 has an order with OrderID 10727
+Customer #66 has an order with OrderID 10812
+Customer #66 has an order with OrderID 10908
+Customer #66 has an order with OrderID 10942
+Customer #66 has an order with OrderID 11010
+Customer #66 has an order with OrderID 11062
+Customer #67 has an order with OrderID 10287
+Customer #67 has an order with OrderID 10299
+Customer #67 has an order with OrderID 10447
+Customer #67 has an order with OrderID 10481
+Customer #67 has an order with OrderID 10563
+Customer #67 has an order with OrderID 10622
+Customer #67 has an order with OrderID 10648
+Customer #67 has an order with OrderID 10813
+Customer #67 has an order with OrderID 10851
+Customer #67 has an order with OrderID 10877
+Customer #67 has an order with OrderID 11059
+Customer #68 has an order with OrderID 10255
+Customer #68 has an order with OrderID 10419
+Customer #68 has an order with OrderID 10537
+Customer #68 has an order with OrderID 10666
+Customer #68 has an order with OrderID 10751
+Customer #68 has an order with OrderID 10758
+Customer #68 has an order with OrderID 10931
+Customer #68 has an order with OrderID 10951
+Customer #68 has an order with OrderID 11033
+Customer #68 has an order with OrderID 11075
+Customer #69 has an order with OrderID 10281
+Customer #69 has an order with OrderID 10282
+Customer #69 has an order with OrderID 10306
+Customer #69 has an order with OrderID 10917
+Customer #69 has an order with OrderID 11013
+Customer #70 has an order with OrderID 10387
+Customer #70 has an order with OrderID 10520
+Customer #70 has an order with OrderID 10639
+Customer #70 has an order with OrderID 10831
+Customer #70 has an order with OrderID 10909
+Customer #70 has an order with OrderID 11015
+Customer #71 has an order with OrderID 10324
+Customer #71 has an order with OrderID 10393
+Customer #71 has an order with OrderID 10398
+Customer #71 has an order with OrderID 10440
+Customer #71 has an order with OrderID 10452
+Customer #71 has an order with OrderID 10510
+Customer #71 has an order with OrderID 10555
+Customer #71 has an order with OrderID 10603
+Customer #71 has an order with OrderID 10607
+Customer #71 has an order with OrderID 10612
+Customer #71 has an order with OrderID 10627
+Customer #71 has an order with OrderID 10657
+Customer #71 has an order with OrderID 10678
+Customer #71 has an order with OrderID 10700
+Customer #71 has an order with OrderID 10711
+Customer #71 has an order with OrderID 10713
+Customer #71 has an order with OrderID 10714
+Customer #71 has an order with OrderID 10722
+Customer #71 has an order with OrderID 10748
+Customer #71 has an order with OrderID 10757
+Customer #71 has an order with OrderID 10815
+Customer #71 has an order with OrderID 10847
+Customer #71 has an order with OrderID 10882
+Customer #71 has an order with OrderID 10894
+Customer #71 has an order with OrderID 10941
+Customer #71 has an order with OrderID 10983
+Customer #71 has an order with OrderID 10984
+Customer #71 has an order with OrderID 11002
+Customer #71 has an order with OrderID 11030
+Customer #71 has an order with OrderID 11031
+Customer #71 has an order with OrderID 11064
+Customer #72 has an order with OrderID 10359
+Customer #72 has an order with OrderID 10377
+Customer #72 has an order with OrderID 10388
+Customer #72 has an order with OrderID 10472
+Customer #72 has an order with OrderID 10523
+Customer #72 has an order with OrderID 10547
+Customer #72 has an order with OrderID 10800
+Customer #72 has an order with OrderID 10804
+Customer #72 has an order with OrderID 10869
+Customer #73 has an order with OrderID 10341
+Customer #73 has an order with OrderID 10417
+Customer #73 has an order with OrderID 10556
+Customer #73 has an order with OrderID 10642
+Customer #73 has an order with OrderID 10669
+Customer #73 has an order with OrderID 10802
+Customer #73 has an order with OrderID 11074
+Customer #74 has an order with OrderID 10738
+Customer #74 has an order with OrderID 10907
+Customer #74 has an order with OrderID 10964
+Customer #74 has an order with OrderID 11043
+Customer #75 has an order with OrderID 10271
+Customer #75 has an order with OrderID 10329
+Customer #75 has an order with OrderID 10349
+Customer #75 has an order with OrderID 10369
+Customer #75 has an order with OrderID 10385
+Customer #75 has an order with OrderID 10432
+Customer #75 has an order with OrderID 10756
+Customer #75 has an order with OrderID 10821
+Customer #75 has an order with OrderID 10974
+Customer #76 has an order with OrderID 10252
+Customer #76 has an order with OrderID 10302
+Customer #76 has an order with OrderID 10458
+Customer #76 has an order with OrderID 10463
+Customer #76 has an order with OrderID 10475
+Customer #76 has an order with OrderID 10767
+Customer #76 has an order with OrderID 10841
+Customer #76 has an order with OrderID 10846
+Customer #76 has an order with OrderID 10885
+Customer #76 has an order with OrderID 10930
+Customer #76 has an order with OrderID 11035
+Customer #76 has an order with OrderID 11038
+Customer #77 has an order with OrderID 10310
+Customer #77 has an order with OrderID 10708
+Customer #77 has an order with OrderID 10805
+Customer #77 has an order with OrderID 10992
+Customer #78 has an order with OrderID 10624
+Customer #78 has an order with OrderID 10775
+Customer #78 has an order with OrderID 11003
+Customer #79 has an order with OrderID 10438
+Customer #79 has an order with OrderID 10446
+Customer #79 has an order with OrderID 10548
+Customer #79 has an order with OrderID 10608
+Customer #79 has an order with OrderID 10967
+Customer #80 has an order with OrderID 10276
+Customer #80 has an order with OrderID 10293
+Customer #80 has an order with OrderID 10304
+Customer #80 has an order with OrderID 10319
+Customer #80 has an order with OrderID 10518
+Customer #80 has an order with OrderID 10576
+Customer #80 has an order with OrderID 10676
+Customer #80 has an order with OrderID 10842
+Customer #80 has an order with OrderID 10915
+Customer #80 has an order with OrderID 11069
+Customer #81 has an order with OrderID 10249
+Customer #81 has an order with OrderID 10292
+Customer #81 has an order with OrderID 10496
+Customer #81 has an order with OrderID 10606
+Customer #81 has an order with OrderID 10830
+Customer #81 has an order with OrderID 10834
+Customer #81 has an order with OrderID 10839
+Customer #82 has an order with OrderID 10574
+Customer #82 has an order with OrderID 10577
+Customer #82 has an order with OrderID 10822
+Customer #83 has an order with OrderID 10367
+Customer #83 has an order with OrderID 10399
+Customer #83 has an order with OrderID 10465
+Customer #83 has an order with OrderID 10591
+Customer #83 has an order with OrderID 10602
+Customer #83 has an order with OrderID 10688
+Customer #83 has an order with OrderID 10744
+Customer #83 has an order with OrderID 10769
+Customer #83 has an order with OrderID 10921
+Customer #83 has an order with OrderID 10946
+Customer #83 has an order with OrderID 10994
+Customer #84 has an order with OrderID 10251
+Customer #84 has an order with OrderID 10334
+Customer #84 has an order with OrderID 10450
+Customer #84 has an order with OrderID 10459
+Customer #84 has an order with OrderID 10478
+Customer #84 has an order with OrderID 10546
+Customer #84 has an order with OrderID 10806
+Customer #84 has an order with OrderID 10814
+Customer #84 has an order with OrderID 10843
+Customer #84 has an order with OrderID 10850
+Customer #85 has an order with OrderID 10274
+Customer #85 has an order with OrderID 10295
+Customer #85 has an order with OrderID 10737
+Customer #85 has an order with OrderID 10739
+Customer #86 has an order with OrderID 10301
+Customer #86 has an order with OrderID 10312
+Customer #86 has an order with OrderID 10348
+Customer #86 has an order with OrderID 10356
+Customer #86 has an order with OrderID 10513
+Customer #86 has an order with OrderID 10632
+Customer #86 has an order with OrderID 10640
+Customer #86 has an order with OrderID 10651
+Customer #86 has an order with OrderID 10668
+Customer #86 has an order with OrderID 11046
+Customer #87 has an order with OrderID 10266
+Customer #87 has an order with OrderID 10270
+Customer #87 has an order with OrderID 10320
+Customer #87 has an order with OrderID 10333
+Customer #87 has an order with OrderID 10412
+Customer #87 has an order with OrderID 10416
+Customer #87 has an order with OrderID 10437
+Customer #87 has an order with OrderID 10455
+Customer #87 has an order with OrderID 10526
+Customer #87 has an order with OrderID 10553
+Customer #87 has an order with OrderID 10583
+Customer #87 has an order with OrderID 10636
+Customer #87 has an order with OrderID 10750
+Customer #87 has an order with OrderID 10781
+Customer #87 has an order with OrderID 11025
+Customer #88 has an order with OrderID 10256
+Customer #88 has an order with OrderID 10420
+Customer #88 has an order with OrderID 10585
+Customer #88 has an order with OrderID 10644
+Customer #88 has an order with OrderID 10803
+Customer #88 has an order with OrderID 10809
+Customer #88 has an order with OrderID 10900
+Customer #88 has an order with OrderID 10905
+Customer #88 has an order with OrderID 10935
+Customer #89 has an order with OrderID 10269
+Customer #89 has an order with OrderID 10344
+Customer #89 has an order with OrderID 10469
+Customer #89 has an order with OrderID 10483
+Customer #89 has an order with OrderID 10504
+Customer #89 has an order with OrderID 10596
+Customer #89 has an order with OrderID 10693
+Customer #89 has an order with OrderID 10696
+Customer #89 has an order with OrderID 10723
+Customer #89 has an order with OrderID 10740
+Customer #89 has an order with OrderID 10861
+Customer #89 has an order with OrderID 10904
+Customer #89 has an order with OrderID 11032
+Customer #89 has an order with OrderID 11066
+Customer #90 has an order with OrderID 10248
+Customer #90 has an order with OrderID 10615
+Customer #90 has an order with OrderID 10673
+Customer #90 has an order with OrderID 10695
+Customer #90 has an order with OrderID 10873
+Customer #90 has an order with OrderID 10879
+Customer #90 has an order with OrderID 10910
+Customer #90 has an order with OrderID 11005
+Customer #91 has an order with OrderID 10374
+Customer #91 has an order with OrderID 10611
+Customer #91 has an order with OrderID 10792
+Customer #91 has an order with OrderID 10870
+Customer #91 has an order with OrderID 10906
+Customer #91 has an order with OrderID 10998
+Customer #91 has an order with OrderID 11044
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq2.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,37 @@
+#summary Restriction Operators: Where - Simple 2
+#sidebar SamplesTree
+
+== Restriction Operators: Where - Simple 2 ==
+
+This sample uses where to find all products that are out of stock.
+
+=== Code ===
+
+{{{
+public void Linq2() {
+ List<Product> products = GetProductList();
+
+ var soldOutProducts =
+ from p in products
+ where p.UnitsInStock == 0
+ select p;
+
+ Console.WriteLine("Sold out products:");
+ foreach (var product in soldOutProducts) {
+ Console.WriteLine("{0} is sold out!", product.ProductName);
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+Sold out products:
+Chef Anton's Gumbo Mix is sold out!
+Alice Mutton is sold out!
+Thüringer Rostbratwurst is sold out!
+Gorgonzola Telino is sold out!
+Perth Pasties is sold out!
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq20.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,32 @@
+#summary Partitioning Operators: Take - Simple
+#sidebar SamplesTree
+
+== Partitioning Operators: Take - Simple ==
+
+This sample uses Take to get only the first 3 elements of the array.
+
+=== Code ===
+
+{{{
+public void Linq20() {
+ int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
+
+ var first3Numbers = numbers.Take(3);
+
+ Console.WriteLine("First 3 numbers:");
+ foreach (var n in first3Numbers) {
+ Console.WriteLine(n);
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+First 3 numbers:
+5
+4
+1
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq21.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,37 @@
+#summary Partitioning Operators: Take - Nested
+#sidebar SamplesTree
+
+== Partitioning Operators: Take - Nested ==
+
+This sample uses Take to get the first 3 orders from customers in
Washington.
+
+=== Code ===
+
+{{{
+public void Linq21() {
+ List<Customer> customers = GetCustomerList();
+
+ var first3WAOrders = (
+ from c in customers
+ from o in c.Orders
+ where c.Region == "WA"
+ select new {c.CustomerID, o.OrderID, o.OrderDate} )
+ .Take(3);
+
+ Console.WriteLine("First 3 orders in WA:");
+ foreach (var order in first3WAOrders) {
+ ObjectDumper.Write(order);
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+First 3 orders in WA:
+CustomerID=LAZYK OrderID=10482 OrderDate=3/21/1997
+CustomerID=LAZYK OrderID=10545 OrderDate=5/22/1997
+CustomerID=TRAIH OrderID=10574 OrderDate=6/19/1997
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq22.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,35 @@
+#summary Partitioning Operators: Skip - Simple
+#sidebar SamplesTree
+
+== Partitioning Operators: Skip - Simple ==
+
+This sample uses Skip to get all but the first 4 elements of the array.
+
+=== Code ===
+
+{{{
+public void Linq22() {
+ int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
+
+ var allButFirst4Numbers = numbers.Skip(4);
+
+ Console.WriteLine("All but first 4 numbers:");
+ foreach (var n in allButFirst4Numbers) {
+ Console.WriteLine(n);
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+All but first 4 numbers:
+9
+8
+6
+7
+2
+0
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq23.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,52 @@
+#summary Partitioning Operators: Skip - Nested
+#sidebar SamplesTree
+
+== Partitioning Operators: Skip - Nested ==
+
+This sample uses Take to get all but the first 2 orders from customers in
Washington.
+
+=== Code ===
+
+{{{
+public void Linq23() {
+ List<Customer> customers = GetCustomerList();
+
+ var waOrders =
+ from c in customers
+ from o in c.Orders
+ where c.Region == "WA"
+ select new {c.CustomerID, o.OrderID, o.OrderDate};
+
+ var allButFirst2Orders = waOrders.Skip(2);
+
+ Console.WriteLine("All but first 2 orders in WA:");
+ foreach (var order in allButFirst2Orders) {
+ ObjectDumper.Write(order);
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+All but first 2 orders in WA:
+CustomerID=TRAIH OrderID=10574 OrderDate=6/19/1997
+CustomerID=TRAIH OrderID=10577 OrderDate=6/23/1997
+CustomerID=TRAIH OrderID=10822 OrderDate=1/8/1998
+CustomerID=WHITC OrderID=10269 OrderDate=7/31/1996
+CustomerID=WHITC OrderID=10344 OrderDate=11/1/1996
+CustomerID=WHITC OrderID=10469 OrderDate=3/10/1997
+CustomerID=WHITC OrderID=10483 OrderDate=3/24/1997
+CustomerID=WHITC OrderID=10504 OrderDate=4/11/1997
+CustomerID=WHITC OrderID=10596 OrderDate=7/11/1997
+CustomerID=WHITC OrderID=10693 OrderDate=10/6/1997
+CustomerID=WHITC OrderID=10696 OrderDate=10/8/1997
+CustomerID=WHITC OrderID=10723 OrderDate=10/30/1997
+CustomerID=WHITC OrderID=10740 OrderDate=11/13/1997
+CustomerID=WHITC OrderID=10861 OrderDate=1/30/1998
+CustomerID=WHITC OrderID=10904 OrderDate=2/24/1998
+CustomerID=WHITC OrderID=11032 OrderDate=4/17/1998
+CustomerID=WHITC OrderID=11066 OrderDate=5/1/1998
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq24.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,33 @@
+#summary Partitioning Operators: TakeWhile - Simple
+#sidebar SamplesTree
+
+== Partitioning Operators: TakeWhile - Simple ==
+
+This sample uses TakeWhile to return elements starting from the beginning
of the array until a number is hit that is not less than 6.
+
+=== Code ===
+
+{{{
+public void Linq24() {
+ int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
+
+ var firstNumbersLessThan6 = numbers.TakeWhile(n => n < 6);
+
+ Console.WriteLine("First numbers less than 6:");
+ foreach (var n in firstNumbersLessThan6) {
+ Console.WriteLine(n);
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+First numbers less than 6:
+5
+4
+1
+3
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq25.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,31 @@
+#summary Partitioning Operators: TakeWhile - Indexed
+#sidebar SamplesTree
+
+== Partitioning Operators: TakeWhile - Indexed ==
+
+This sample uses TakeWhile to return elements starting from the beginning
of the array until a number is hit that is less than its position in the
array.
+
+=== Code ===
+
+{{{
+public void Linq25() {
+ int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
+
+ var firstSmallNumbers = numbers.TakeWhile((n, index) => n >= index);
+
+ Console.WriteLine("First numbers not less than their position:");
+ foreach (var n in firstSmallNumbers) {
+ Console.WriteLine(n);
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+First numbers not less than their position:
+5
+4
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq26.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,36 @@
+#summary Partitioning Operators: SkipWhile - Simple
+#sidebar SamplesTree
+
+== Partitioning Operators: SkipWhile - Simple ==
+
+This sample uses SkipWhile to get the elements of the array starting from
the first element divisible by 3.
+
+=== Code ===
+
+{{{
+public void Linq26() {
+ int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
+
+ var allButFirst3Numbers = numbers.SkipWhile(n => n % 3 != 0);
+
+ Console.WriteLine("All elements starting from first element divisible
by 3:");
+ foreach (var n in allButFirst3Numbers) {
+ Console.WriteLine(n);
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+All elements starting from first element divisible by 3:
+3
+9
+8
+6
+7
+2
+0
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq27.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,37 @@
+#summary Partitioning Operators: SkipWhile - Indexed
+#sidebar SamplesTree
+
+== Partitioning Operators: SkipWhile - Indexed ==
+
+This sample uses SkipWhile to get the elements of the array starting from
the first element less than its position.
+
+=== Code ===
+
+{{{
+public void Linq27() {
+ int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
+
+ var laterNumbers = numbers.SkipWhile((n, index) => n >= index);
+
+ Console.WriteLine("All elements starting from first element less than
its position:");
+ foreach (var n in laterNumbers) {
+ Console.WriteLine(n);
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+All elements starting from first element less than its position:
+1
+3
+9
+8
+6
+7
+2
+0
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq28.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,35 @@
+#summary Ordering Operators: OrderBy - Simple 1
+#sidebar SamplesTree
+
+== Ordering Operators: OrderBy - Simple 1 ==
+
+This sample uses orderby to sort a list of words alphabetically.
+
+=== Code ===
+
+{{{
+public void Linq28() {
+ string[] words = { "cherry", "apple", "blueberry" };
+
+ var sortedWords =
+ from w in words
+ orderby w
+ select w;
+
+ Console.WriteLine("The sorted list of words:");
+ foreach (var w in sortedWords) {
+ Console.WriteLine(w);
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+The sorted list of words:
+apple
+blueberry
+cherry
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq29.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,35 @@
+#summary Ordering Operators: OrderBy - Simple 2
+#sidebar SamplesTree
+
+== Ordering Operators: OrderBy - Simple 2 ==
+
+This sample uses orderby to sort a list of words by length.
+
+=== Code ===
+
+{{{
+public void Linq29() {
+ string[] words = { "cherry", "apple", "blueberry" };
+
+ var sortedWords =
+ from w in words
+ orderby w.Length
+ select w;
+
+ Console.WriteLine("The sorted list of words (by length):");
+ foreach (var w in sortedWords) {
+ Console.WriteLine(w);
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+The sorted list of words (by length):
+apple
+cherry
+blueberry
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq3.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,103 @@
+#summary Restriction Operators: Where - Simple 3
+#sidebar SamplesTree
+
+== Restriction Operators: Where - Simple 3 ==
+
+This sample uses where to find all products that are in stock and cost
more than 3.00 per unit.
+
+=== Code ===
+
+{{{
+public void Linq3() {
+ List<Product> products = GetProductList();
+
+ var expensiveInStockProducts =
+ from p in products
+ where p.UnitsInStock > 0 && p.UnitPrice > 3.00M
+ select p;
+
+ Console.WriteLine("In-stock products that cost more than 3.00:");
+ foreach (var product in expensiveInStockProducts) {
+ Console.WriteLine("{0} is in stock and costs more than 3.00.",
product.ProductName);
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+In-stock products that cost more than 3.00:
+Chai is in stock and costs more than 3.00.
+Chang is in stock and costs more than 3.00.
+Aniseed Syrup is in stock and costs more than 3.00.
+Chef Anton's Cajun Seasoning is in stock and costs more than 3.00.
+Grandma's Boysenberry Spread is in stock and costs more than 3.00.
+Uncle Bob's Organic Dried Pears is in stock and costs more than 3.00.
+Northwoods Cranberry Sauce is in stock and costs more than 3.00.
+Mishi Kobe Niku is in stock and costs more than 3.00.
+Ikura is in stock and costs more than 3.00.
+Queso Cabrales is in stock and costs more than 3.00.
+Queso Manchego La Pastora is in stock and costs more than 3.00.
+Konbu is in stock and costs more than 3.00.
+Tofu is in stock and costs more than 3.00.
+Genen Shouyu is in stock and costs more than 3.00.
+Pavlova is in stock and costs more than 3.00.
+Carnarvon Tigers is in stock and costs more than 3.00.
+Teatime Chocolate Biscuits is in stock and costs more than 3.00.
+Sir Rodney's Marmalade is in stock and costs more than 3.00.
+Sir Rodney's Scones is in stock and costs more than 3.00.
+Gustaf's Knäckebröd is in stock and costs more than 3.00.
+Tunnbröd is in stock and costs more than 3.00.
+Guaraná Fantástica is in stock and costs more than 3.00.
+NuNuCa Nuß-Nougat-Creme is in stock and costs more than 3.00.
+Gumbär Gummibärchen is in stock and costs more than 3.00.
+Schoggi Schokolade is in stock and costs more than 3.00.
+Rössle Sauerkraut is in stock and costs more than 3.00.
+Nord-Ost Matjeshering is in stock and costs more than 3.00.
+Mascarpone Fabioli is in stock and costs more than 3.00.
+Sasquatch Ale is in stock and costs more than 3.00.
+Steeleye Stout is in stock and costs more than 3.00.
+Inlagd Sill is in stock and costs more than 3.00.
+Gravad lax is in stock and costs more than 3.00.
+Côte de Blaye is in stock and costs more than 3.00.
+Chartreuse verte is in stock and costs more than 3.00.
+Boston Crab Meat is in stock and costs more than 3.00.
+Jack's New England Clam Chowder is in stock and costs more than 3.00.
+Singaporean Hokkien Fried Mee is in stock and costs more than 3.00.
+Ipoh Coffee is in stock and costs more than 3.00.
+Gula Malacca is in stock and costs more than 3.00.
+Rogede sild is in stock and costs more than 3.00.
+Spegesild is in stock and costs more than 3.00.
+Zaanse koeken is in stock and costs more than 3.00.
+Chocolade is in stock and costs more than 3.00.
+Maxilaku is in stock and costs more than 3.00.
+Valkoinen suklaa is in stock and costs more than 3.00.
+Manjimup Dried Apples is in stock and costs more than 3.00.
+Filo Mix is in stock and costs more than 3.00.
+Tourtière is in stock and costs more than 3.00.
+Pâté chinois is in stock and costs more than 3.00.
+Gnocchi di nonna Alice is in stock and costs more than 3.00.
+Ravioli Angelo is in stock and costs more than 3.00.
+Escargots de Bourgogne is in stock and costs more than 3.00.
+Raclette Courdavault is in stock and costs more than 3.00.
+Camembert Pierrot is in stock and costs more than 3.00.
+Sirop d'érable is in stock and costs more than 3.00.
+Tarte au sucre is in stock and costs more than 3.00.
+Vegie-spread is in stock and costs more than 3.00.
+Wimmers gute Semmelknödel is in stock and costs more than 3.00.
+Louisiana Fiery Hot Pepper Sauce is in stock and costs more than 3.00.
+Louisiana Hot Spiced Okra is in stock and costs more than 3.00.
+Laughing Lumberjack Lager is in stock and costs more than 3.00.
+Scottish Longbreads is in stock and costs more than 3.00.
+Gudbrandsdalsost is in stock and costs more than 3.00.
+Outback Lager is in stock and costs more than 3.00.
+Flotemysost is in stock and costs more than 3.00.
+Mozzarella di Giovanni is in stock and costs more than 3.00.
+Röd Kaviar is in stock and costs more than 3.00.
+Longlife Tofu is in stock and costs more than 3.00.
+Rhönbräu Klosterbier is in stock and costs more than 3.00.
+Lakkalikööri is in stock and costs more than 3.00.
+Original Frankfurter grüne Soße is in stock and costs more than 3.00.
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq30.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,105 @@
+#summary Ordering Operators: OrderBy - Simple 3
+#sidebar SamplesTree
+
+== Ordering Operators: OrderBy - Simple 3 ==
+
+This sample uses orderby to sort a list of products by name.
+
+=== Code ===
+
+{{{
+public void Linq30() {
+ List<Product> products = GetProductList();
+
+ var sortedProducts =
+ from p in products
+ orderby p.ProductName
+ select p;
+
+ ObjectDumper.Write(sortedProducts);
+}
+
+}}}
+
+=== Output ===
+
+{{{
+ProductID=17 ProductName=Alice Mutton Category=Meat/Poultry
UnitPrice=39.0000 UnitsInStock=0
+ProductID=3 ProductName=Aniseed Syrup Category=Condiments
UnitPrice=10.0000 UnitsInStock=13
+ProductID=40 ProductName=Boston Crab Meat Category=Seafood
UnitPrice=18.4000 UnitsInStock=123
+ProductID=60 ProductName=Camembert Pierrot Category=Dairy
Products UnitPrice=34.0000 UnitsInStock=19
+ProductID=18 ProductName=Carnarvon Tigers Category=Seafood
UnitPrice=62.5000 UnitsInStock=42
+ProductID=1 ProductName=Chai Category=Beverages
UnitPrice=18.0000 UnitsInStock=39
+ProductID=2 ProductName=Chang Category=Beverages
UnitPrice=19.0000 UnitsInStock=17
+ProductID=39 ProductName=Chartreuse verte Category=Beverages
UnitPrice=18.0000 UnitsInStock=69
+ProductID=4 ProductName=Chef Anton's Cajun Seasoning
Category=Condiments UnitPrice=22.0000 UnitsInStock=53
+ProductID=5 ProductName=Chef Anton's Gumbo Mix
Category=Condiments UnitPrice=21.3500 UnitsInStock=0
+ProductID=48 ProductName=Chocolade Category=Confections
UnitPrice=12.7500 UnitsInStock=15
+ProductID=38 ProductName=Côte de Blaye Category=Beverages
UnitPrice=263.5000 UnitsInStock=17
+ProductID=58 ProductName=Escargots de Bourgogne
Category=Seafood UnitPrice=13.2500 UnitsInStock=62
+ProductID=52 ProductName=Filo Mix Category=Grains/Cereals
UnitPrice=7.0000 UnitsInStock=38
+ProductID=71 ProductName=Flotemysost Category=Dairy
Products UnitPrice=21.5000 UnitsInStock=26
+ProductID=33 ProductName=Geitost Category=Dairy Products
UnitPrice=2.5000 UnitsInStock=112
+ProductID=15 ProductName=Genen Shouyu Category=Condiments
UnitPrice=15.5000 UnitsInStock=39
+ProductID=56 ProductName=Gnocchi di nonna Alice
Category=Grains/Cereals UnitPrice=38.0000 UnitsInStock=21
+ProductID=31 ProductName=Gorgonzola Telino Category=Dairy
Products UnitPrice=12.5000 UnitsInStock=0
+ProductID=6 ProductName=Grandma's Boysenberry Spread
Category=Condiments UnitPrice=25.0000 UnitsInStock=120
+ProductID=37 ProductName=Gravad lax Category=Seafood
UnitPrice=26.0000 UnitsInStock=11
+ProductID=24 ProductName=Guaraná Fantástica Category=Beverages
UnitPrice=4.5000 UnitsInStock=20
+ProductID=69 ProductName=Gudbrandsdalsost Category=Dairy
Products UnitPrice=36.0000 UnitsInStock=26
+ProductID=44 ProductName=Gula Malacca Category=Condiments
UnitPrice=19.4500 UnitsInStock=27
+ProductID=26 ProductName=Gumbär Gummibärchen
Category=Confections UnitPrice=31.2300 UnitsInStock=15
+ProductID=22 ProductName=Gustaf's Knäckebröd
Category=Grains/Cereals UnitPrice=21.0000 UnitsInStock=104
+ProductID=10 ProductName=Ikura Category=Seafood
UnitPrice=31.0000 UnitsInStock=31
+ProductID=36 ProductName=Inlagd Sill Category=Seafood
UnitPrice=19.0000 UnitsInStock=112
+ProductID=43 ProductName=Ipoh Coffee Category=Beverages
UnitPrice=46.0000 UnitsInStock=17
+ProductID=41 ProductName=Jack's New England Clam Chowder
Category=Seafood UnitPrice=9.6500 UnitsInStock=85
+ProductID=13 ProductName=Konbu Category=Seafood
UnitPrice=6.0000 UnitsInStock=24
+ProductID=76 ProductName=Lakkalikööri Category=Beverages
UnitPrice=18.0000 UnitsInStock=57
+ProductID=67 ProductName=Laughing Lumberjack Lager
Category=Beverages UnitPrice=14.0000 UnitsInStock=52
+ProductID=74 ProductName=Longlife Tofu Category=Produce
UnitPrice=10.0000 UnitsInStock=4
+ProductID=65 ProductName=Louisiana Fiery Hot Pepper Sauce
Category=Condiments UnitPrice=21.0500 UnitsInStock=76
+ProductID=66 ProductName=Louisiana Hot Spiced Okra
Category=Condiments UnitPrice=17.0000 UnitsInStock=4
+ProductID=51 ProductName=Manjimup Dried Apples
Category=Produce UnitPrice=53.0000 UnitsInStock=20
+ProductID=32 ProductName=Mascarpone Fabioli Category=Dairy
Products UnitPrice=32.0000 UnitsInStock=9
+ProductID=49 ProductName=Maxilaku Category=Confections
UnitPrice=20.0000 UnitsInStock=10
+ProductID=9 ProductName=Mishi Kobe Niku Category=Meat/Poultry
UnitPrice=97.0000 UnitsInStock=29
+ProductID=72 ProductName=Mozzarella di Giovanni Category=Dairy
Products UnitPrice=34.8000 UnitsInStock=14
+ProductID=30 ProductName=Nord-Ost Matjeshering
Category=Seafood UnitPrice=25.8900 UnitsInStock=10
+ProductID=8 ProductName=Northwoods Cranberry Sauce
Category=Condiments UnitPrice=40.0000 UnitsInStock=6
+ProductID=25 ProductName=NuNuCa Nuß-Nougat-Creme
Category=Confections UnitPrice=14.0000 UnitsInStock=76
+ProductID=77 ProductName=Original Frankfurter grüne Soße
Category=Condiments UnitPrice=13.0000 UnitsInStock=32
+ProductID=70 ProductName=Outback Lager Category=Beverages
UnitPrice=15.0000 UnitsInStock=15
+ProductID=55 ProductName=Pâté chinois Category=Meat/Poultry
UnitPrice=24.0000 UnitsInStock=115
+ProductID=16 ProductName=Pavlova Category=Confections
UnitPrice=17.4500 UnitsInStock=29
+ProductID=53 ProductName=Perth Pasties Category=Meat/Poultry
UnitPrice=32.8000 UnitsInStock=0
+ProductID=11 ProductName=Queso Cabrales Category=Dairy
Products UnitPrice=21.0000 UnitsInStock=22
+ProductID=12 ProductName=Queso Manchego La Pastora Category=Dairy
Products UnitPrice=38.0000 UnitsInStock=86
+ProductID=59 ProductName=Raclette Courdavault Category=Dairy
Products UnitPrice=55.0000 UnitsInStock=79
+ProductID=57 ProductName=Ravioli Angelo
Category=Grains/Cereals UnitPrice=19.5000 UnitsInStock=36
+ProductID=75 ProductName=Rhönbräu Klosterbier
Category=Beverages UnitPrice=7.7500 UnitsInStock=125
+ProductID=73 ProductName=Röd Kaviar Category=Seafood
UnitPrice=15.0000 UnitsInStock=101
+ProductID=45 ProductName=Rogede sild Category=Seafood
UnitPrice=9.5000 UnitsInStock=5
+ProductID=28 ProductName=Rössle Sauerkraut Category=Produce
UnitPrice=45.6000 UnitsInStock=26
+ProductID=34 ProductName=Sasquatch Ale Category=Beverages
UnitPrice=14.0000 UnitsInStock=111
+ProductID=27 ProductName=Schoggi Schokolade Category=Confections
UnitPrice=43.9000 UnitsInStock=49
+ProductID=68 ProductName=Scottish Longbreads
Category=Confections UnitPrice=12.5000 UnitsInStock=6
+ProductID=42 ProductName=Singaporean Hokkien Fried Mee
Category=Grains/Cereals UnitPrice=14.0000 UnitsInStock=26
+ProductID=20 ProductName=Sir Rodney's Marmalade
Category=Confections UnitPrice=81.0000 UnitsInStock=40
+ProductID=21 ProductName=Sir Rodney's Scones
Category=Confections UnitPrice=10.0000 UnitsInStock=3
+ProductID=61 ProductName=Sirop d'érable Category=Condiments
UnitPrice=28.5000 UnitsInStock=113
+ProductID=46 ProductName=Spegesild Category=Seafood
UnitPrice=12.0000 UnitsInStock=95
+ProductID=35 ProductName=Steeleye Stout Category=Beverages
UnitPrice=18.0000 UnitsInStock=20
+ProductID=62 ProductName=Tarte au sucre Category=Confections
UnitPrice=49.3000 UnitsInStock=17
+ProductID=19 ProductName=Teatime Chocolate Biscuits
Category=Confections UnitPrice=9.2000 UnitsInStock=25
+ProductID=29 ProductName=Thüringer Rostbratwurst
Category=Meat/Poultry UnitPrice=123.7900 UnitsInStock=0
+ProductID=14 ProductName=Tofu Category=Produce
UnitPrice=23.2500 UnitsInStock=35
+ProductID=54 ProductName=Tourtière Category=Meat/Poultry
UnitPrice=7.4500 UnitsInStock=21
+ProductID=23 ProductName=Tunnbröd Category=Grains/Cereals
UnitPrice=9.0000 UnitsInStock=61
+ProductID=7 ProductName=Uncle Bob's Organic Dried Pears
Category=Produce UnitPrice=30.0000 UnitsInStock=15
+ProductID=50 ProductName=Valkoinen suklaa Category=Confections
UnitPrice=16.2500 UnitsInStock=65
+ProductID=63 ProductName=Vegie-spread Category=Condiments
UnitPrice=43.9000 UnitsInStock=24
+ProductID=64 ProductName=Wimmers gute Semmelknödel
Category=Grains/Cereals UnitPrice=33.2500 UnitsInStock=22
+ProductID=47 ProductName=Zaanse koeken Category=Confections
UnitPrice=9.5000 UnitsInStock=36
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq31.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,39 @@
+#summary Ordering Operators: OrderBy - Comparer
+#sidebar SamplesTree
+
+== Ordering Operators: OrderBy - Comparer ==
+
+This sample uses an OrderBy clause with a custom comparer to do a
case-insensitive sort of the words in an array.
+
+=== Code ===
+
+{{{
+public void Linq31() {
+ string[] words =
{ "aPPLE", "AbAcUs", "bRaNcH", "BlUeBeRrY", "ClOvEr", "cHeRry"};
+
+ var sortedWords = words.OrderBy(a => a, new CaseInsensitiveComparer());
+
+ ObjectDumper.Write(sortedWords);
+}
+
+public class CaseInsensitiveComparer : IComparer<string>
+{
+ public int Compare(string x, string y)
+ {
+ return string.Compare(x, y, StringComparison.OrdinalIgnoreCase);
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+AbAcUs
+aPPLE
+BlUeBeRrY
+bRaNcH
+cHeRry
+ClOvEr
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq32.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,37 @@
+#summary Ordering Operators: OrderByDescending - Simple 1
+#sidebar SamplesTree
+
+== Ordering Operators: OrderByDescending - Simple 1 ==
+
+This sample uses orderby and descending to sort a list of doubles from
highest to lowest.
+
+=== Code ===
+
+{{{
+public void Linq32() {
+ double[] doubles = { 1.7, 2.3, 1.9, 4.1, 2.9 };
+
+ var sortedDoubles =
+ from d in doubles
+ orderby d descending
+ select d;
+
+ Console.WriteLine("The doubles from highest to lowest:");
+ foreach (var d in sortedDoubles) {
+ Console.WriteLine(d);
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+The doubles from highest to lowest:
+4.1
+2.9
+2.3
+1.9
+1.7
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq33.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,105 @@
+#summary Ordering Operators: OrderByDescending - Simple 2
+#sidebar SamplesTree
+
+== Ordering Operators: OrderByDescending - Simple 2 ==
+
+This sample uses orderby to sort a list of products by units in stock from
highest to lowest.
+
+=== Code ===
+
+{{{
+public void Linq33() {
+ List<Product> products = GetProductList();
+
+ var sortedProducts =
+ from p in products
+ orderby p.UnitsInStock descending
+ select p;
+
+ ObjectDumper.Write(sortedProducts);
+}
+
+}}}
+
+=== Output ===
+
+{{{
+ProductID=75 ProductName=Rhönbräu Klosterbier
Category=Beverages UnitPrice=7.7500 UnitsInStock=125
+ProductID=40 ProductName=Boston Crab Meat Category=Seafood
UnitPrice=18.4000 UnitsInStock=123
+ProductID=6 ProductName=Grandma's Boysenberry Spread
Category=Condiments UnitPrice=25.0000 UnitsInStock=120
+ProductID=55 ProductName=Pâté chinois Category=Meat/Poultry
UnitPrice=24.0000 UnitsInStock=115
+ProductID=61 ProductName=Sirop d'érable Category=Condiments
UnitPrice=28.5000 UnitsInStock=113
+ProductID=33 ProductName=Geitost Category=Dairy Products
UnitPrice=2.5000 UnitsInStock=112
+ProductID=36 ProductName=Inlagd Sill Category=Seafood
UnitPrice=19.0000 UnitsInStock=112
+ProductID=34 ProductName=Sasquatch Ale Category=Beverages
UnitPrice=14.0000 UnitsInStock=111
+ProductID=22 ProductName=Gustaf's Knäckebröd
Category=Grains/Cereals UnitPrice=21.0000 UnitsInStock=104
+ProductID=73 ProductName=Röd Kaviar Category=Seafood
UnitPrice=15.0000 UnitsInStock=101
+ProductID=46 ProductName=Spegesild Category=Seafood
UnitPrice=12.0000 UnitsInStock=95
+ProductID=12 ProductName=Queso Manchego La Pastora Category=Dairy
Products UnitPrice=38.0000 UnitsInStock=86
+ProductID=41 ProductName=Jack's New England Clam Chowder
Category=Seafood UnitPrice=9.6500 UnitsInStock=85
+ProductID=59 ProductName=Raclette Courdavault Category=Dairy
Products UnitPrice=55.0000 UnitsInStock=79
+ProductID=25 ProductName=NuNuCa Nuß-Nougat-Creme
Category=Confections UnitPrice=14.0000 UnitsInStock=76
+ProductID=65 ProductName=Louisiana Fiery Hot Pepper Sauce
Category=Condiments UnitPrice=21.0500 UnitsInStock=76
+ProductID=39 ProductName=Chartreuse verte Category=Beverages
UnitPrice=18.0000 UnitsInStock=69
+ProductID=50 ProductName=Valkoinen suklaa Category=Confections
UnitPrice=16.2500 UnitsInStock=65
+ProductID=58 ProductName=Escargots de Bourgogne
Category=Seafood UnitPrice=13.2500 UnitsInStock=62
+ProductID=23 ProductName=Tunnbröd Category=Grains/Cereals
UnitPrice=9.0000 UnitsInStock=61
+ProductID=76 ProductName=Lakkalikööri Category=Beverages
UnitPrice=18.0000 UnitsInStock=57
+ProductID=4 ProductName=Chef Anton's Cajun Seasoning
Category=Condiments UnitPrice=22.0000 UnitsInStock=53
+ProductID=67 ProductName=Laughing Lumberjack Lager
Category=Beverages UnitPrice=14.0000 UnitsInStock=52
+ProductID=27 ProductName=Schoggi Schokolade Category=Confections
UnitPrice=43.9000 UnitsInStock=49
+ProductID=18 ProductName=Carnarvon Tigers Category=Seafood
UnitPrice=62.5000 UnitsInStock=42
+ProductID=20 ProductName=Sir Rodney's Marmalade
Category=Confections UnitPrice=81.0000 UnitsInStock=40
+ProductID=1 ProductName=Chai Category=Beverages
UnitPrice=18.0000 UnitsInStock=39
+ProductID=15 ProductName=Genen Shouyu Category=Condiments
UnitPrice=15.5000 UnitsInStock=39
+ProductID=52 ProductName=Filo Mix Category=Grains/Cereals
UnitPrice=7.0000 UnitsInStock=38
+ProductID=47 ProductName=Zaanse koeken Category=Confections
UnitPrice=9.5000 UnitsInStock=36
+ProductID=57 ProductName=Ravioli Angelo
Category=Grains/Cereals UnitPrice=19.5000 UnitsInStock=36
+ProductID=14 ProductName=Tofu Category=Produce
UnitPrice=23.2500 UnitsInStock=35
+ProductID=77 ProductName=Original Frankfurter grüne Soße
Category=Condiments UnitPrice=13.0000 UnitsInStock=32
+ProductID=10 ProductName=Ikura Category=Seafood
UnitPrice=31.0000 UnitsInStock=31
+ProductID=9 ProductName=Mishi Kobe Niku Category=Meat/Poultry
UnitPrice=97.0000 UnitsInStock=29
+ProductID=16 ProductName=Pavlova Category=Confections
UnitPrice=17.4500 UnitsInStock=29
+ProductID=44 ProductName=Gula Malacca Category=Condiments
UnitPrice=19.4500 UnitsInStock=27
+ProductID=28 ProductName=Rössle Sauerkraut Category=Produce
UnitPrice=45.6000 UnitsInStock=26
+ProductID=42 ProductName=Singaporean Hokkien Fried Mee
Category=Grains/Cereals UnitPrice=14.0000 UnitsInStock=26
+ProductID=69 ProductName=Gudbrandsdalsost Category=Dairy
Products UnitPrice=36.0000 UnitsInStock=26
+ProductID=71 ProductName=Flotemysost Category=Dairy
Products UnitPrice=21.5000 UnitsInStock=26
+ProductID=19 ProductName=Teatime Chocolate Biscuits
Category=Confections UnitPrice=9.2000 UnitsInStock=25
+ProductID=13 ProductName=Konbu Category=Seafood
UnitPrice=6.0000 UnitsInStock=24
+ProductID=63 ProductName=Vegie-spread Category=Condiments
UnitPrice=43.9000 UnitsInStock=24
+ProductID=11 ProductName=Queso Cabrales Category=Dairy
Products UnitPrice=21.0000 UnitsInStock=22
+ProductID=64 ProductName=Wimmers gute Semmelknödel
Category=Grains/Cereals UnitPrice=33.2500 UnitsInStock=22
+ProductID=54 ProductName=Tourtière Category=Meat/Poultry
UnitPrice=7.4500 UnitsInStock=21
+ProductID=56 ProductName=Gnocchi di nonna Alice
Category=Grains/Cereals UnitPrice=38.0000 UnitsInStock=21
+ProductID=24 ProductName=Guaraná Fantástica Category=Beverages
UnitPrice=4.5000 UnitsInStock=20
+ProductID=35 ProductName=Steeleye Stout Category=Beverages
UnitPrice=18.0000 UnitsInStock=20
+ProductID=51 ProductName=Manjimup Dried Apples
Category=Produce UnitPrice=53.0000 UnitsInStock=20
+ProductID=60 ProductName=Camembert Pierrot Category=Dairy
Products UnitPrice=34.0000 UnitsInStock=19
+ProductID=2 ProductName=Chang Category=Beverages
UnitPrice=19.0000 UnitsInStock=17
+ProductID=38 ProductName=Côte de Blaye Category=Beverages
UnitPrice=263.5000 UnitsInStock=17
+ProductID=43 ProductName=Ipoh Coffee Category=Beverages
UnitPrice=46.0000 UnitsInStock=17
+ProductID=62 ProductName=Tarte au sucre Category=Confections
UnitPrice=49.3000 UnitsInStock=17
+ProductID=7 ProductName=Uncle Bob's Organic Dried Pears
Category=Produce UnitPrice=30.0000 UnitsInStock=15
+ProductID=26 ProductName=Gumbär Gummibärchen
Category=Confections UnitPrice=31.2300 UnitsInStock=15
+ProductID=48 ProductName=Chocolade Category=Confections
UnitPrice=12.7500 UnitsInStock=15
+ProductID=70 ProductName=Outback Lager Category=Beverages
UnitPrice=15.0000 UnitsInStock=15
+ProductID=72 ProductName=Mozzarella di Giovanni Category=Dairy
Products UnitPrice=34.8000 UnitsInStock=14
+ProductID=3 ProductName=Aniseed Syrup Category=Condiments
UnitPrice=10.0000 UnitsInStock=13
+ProductID=37 ProductName=Gravad lax Category=Seafood
UnitPrice=26.0000 UnitsInStock=11
+ProductID=30 ProductName=Nord-Ost Matjeshering
Category=Seafood UnitPrice=25.8900 UnitsInStock=10
+ProductID=49 ProductName=Maxilaku Category=Confections
UnitPrice=20.0000 UnitsInStock=10
+ProductID=32 ProductName=Mascarpone Fabioli Category=Dairy
Products UnitPrice=32.0000 UnitsInStock=9
+ProductID=8 ProductName=Northwoods Cranberry Sauce
Category=Condiments UnitPrice=40.0000 UnitsInStock=6
+ProductID=68 ProductName=Scottish Longbreads
Category=Confections UnitPrice=12.5000 UnitsInStock=6
+ProductID=45 ProductName=Rogede sild Category=Seafood
UnitPrice=9.5000 UnitsInStock=5
+ProductID=66 ProductName=Louisiana Hot Spiced Okra
Category=Condiments UnitPrice=17.0000 UnitsInStock=4
+ProductID=74 ProductName=Longlife Tofu Category=Produce
UnitPrice=10.0000 UnitsInStock=4
+ProductID=21 ProductName=Sir Rodney's Scones
Category=Confections UnitPrice=10.0000 UnitsInStock=3
+ProductID=5 ProductName=Chef Anton's Gumbo Mix
Category=Condiments UnitPrice=21.3500 UnitsInStock=0
+ProductID=17 ProductName=Alice Mutton Category=Meat/Poultry
UnitPrice=39.0000 UnitsInStock=0
+ProductID=29 ProductName=Thüringer Rostbratwurst
Category=Meat/Poultry UnitPrice=123.7900 UnitsInStock=0
+ProductID=31 ProductName=Gorgonzola Telino Category=Dairy
Products UnitPrice=12.5000 UnitsInStock=0
+ProductID=53 ProductName=Perth Pasties Category=Meat/Poultry
UnitPrice=32.8000 UnitsInStock=0
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq34.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,39 @@
+#summary Ordering Operators: OrderByDescending - Comparer
+#sidebar SamplesTree
+
+== Ordering Operators: OrderByDescending - Comparer ==
+
+This sample uses an OrderBy clause with a custom comparer to do a
case-insensitive descending sort of the words in an array.
+
+=== Code ===
+
+{{{
+public void Linq34() {
+ string[] words =
{ "aPPLE", "AbAcUs", "bRaNcH", "BlUeBeRrY", "ClOvEr", "cHeRry"};
+
+ var sortedWords = words.OrderByDescending(a => a, new
CaseInsensitiveComparer());
+
+ ObjectDumper.Write(sortedWords);
+}
+
+public class CaseInsensitiveComparer : IComparer<string>
+{
+ public int Compare(string x, string y)
+ {
+ return string.Compare(x, y, StringComparison.OrdinalIgnoreCase);
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+ClOvEr
+cHeRry
+bRaNcH
+BlUeBeRrY
+aPPLE
+AbAcUs
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq35.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,42 @@
+#summary Ordering Operators: ThenBy - Simple
+#sidebar SamplesTree
+
+== Ordering Operators: ThenBy - Simple ==
+
+This sample uses a compound orderby to sort a list of digits, first by
length of their name, and then alphabetically by the name itself.
+
+=== Code ===
+
+{{{
+public void Linq35() {
+ string[] digits =
{ "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"
};
+
+ var sortedDigits =
+ from d in digits
+ orderby d.Length, d
+ select d;
+
+ Console.WriteLine("Sorted digits:");
+ foreach (var d in sortedDigits) {
+ Console.WriteLine(d);
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+Sorted digits:
+one
+six
+two
+five
+four
+nine
+zero
+eight
+seven
+three
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq36.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,41 @@
+#summary Ordering Operators: ThenBy - Comparer
+#sidebar SamplesTree
+
+== Ordering Operators: ThenBy - Comparer ==
+
+This sample uses an OrderBy and a ThenBy clause with a custom comparer to
sort first by word length and then by a case-insensitive sort of the words
in an array.
+
+=== Code ===
+
+{{{
+public void Linq36() {
+ string[] words =
{ "aPPLE", "AbAcUs", "bRaNcH", "BlUeBeRrY", "ClOvEr", "cHeRry"};
+
+ var sortedWords =
+ words.OrderBy(a => a.Length)
+ .ThenBy(a => a, new CaseInsensitiveComparer());
+
+ ObjectDumper.Write(sortedWords);
+}
+
+public class CaseInsensitiveComparer : IComparer<string>
+{
+ public int Compare(string x, string y)
+ {
+ return string.Compare(x, y, StringComparison.OrdinalIgnoreCase);
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+aPPLE
+AbAcUs
+bRaNcH
+cHeRry
+ClOvEr
+BlUeBeRrY
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq37.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,105 @@
+#summary Ordering Operators: ThenByDescending - Simple
+#sidebar SamplesTree
+
+== Ordering Operators: ThenByDescending - Simple ==
+
+This sample uses a compound orderby to sort a list of products, first by
category, and then by unit price, from highest to lowest.
+
+=== Code ===
+
+{{{
+public void Linq37() {
+ List<Product> products = GetProductList();
+
+ var sortedProducts =
+ from p in products
+ orderby p.Category, p.UnitPrice descending
+ select p;
+
+ ObjectDumper.Write(sortedProducts);
+}
+
+}}}
+
+=== Output ===
+
+{{{
+ProductID=38 ProductName=Côte de Blaye Category=Beverages
UnitPrice=263.5000 UnitsInStock=17
+ProductID=43 ProductName=Ipoh Coffee Category=Beverages
UnitPrice=46.0000 UnitsInStock=17
+ProductID=2 ProductName=Chang Category=Beverages
UnitPrice=19.0000 UnitsInStock=17
+ProductID=1 ProductName=Chai Category=Beverages
UnitPrice=18.0000 UnitsInStock=39
+ProductID=35 ProductName=Steeleye Stout Category=Beverages
UnitPrice=18.0000 UnitsInStock=20
+ProductID=39 ProductName=Chartreuse verte Category=Beverages
UnitPrice=18.0000 UnitsInStock=69
+ProductID=76 ProductName=Lakkalikööri Category=Beverages
UnitPrice=18.0000 UnitsInStock=57
+ProductID=70 ProductName=Outback Lager Category=Beverages
UnitPrice=15.0000 UnitsInStock=15
+ProductID=34 ProductName=Sasquatch Ale Category=Beverages
UnitPrice=14.0000 UnitsInStock=111
+ProductID=67 ProductName=Laughing Lumberjack Lager
Category=Beverages UnitPrice=14.0000 UnitsInStock=52
+ProductID=75 ProductName=Rhönbräu Klosterbier
Category=Beverages UnitPrice=7.7500 UnitsInStock=125
+ProductID=24 ProductName=Guaraná Fantástica Category=Beverages
UnitPrice=4.5000 UnitsInStock=20
+ProductID=63 ProductName=Vegie-spread Category=Condiments
UnitPrice=43.9000 UnitsInStock=24
+ProductID=8 ProductName=Northwoods Cranberry Sauce
Category=Condiments UnitPrice=40.0000 UnitsInStock=6
+ProductID=61 ProductName=Sirop d'érable Category=Condiments
UnitPrice=28.5000 UnitsInStock=113
+ProductID=6 ProductName=Grandma's Boysenberry Spread
Category=Condiments UnitPrice=25.0000 UnitsInStock=120
+ProductID=4 ProductName=Chef Anton's Cajun Seasoning
Category=Condiments UnitPrice=22.0000 UnitsInStock=53
+ProductID=5 ProductName=Chef Anton's Gumbo Mix
Category=Condiments UnitPrice=21.3500 UnitsInStock=0
+ProductID=65 ProductName=Louisiana Fiery Hot Pepper Sauce
Category=Condiments UnitPrice=21.0500 UnitsInStock=76
+ProductID=44 ProductName=Gula Malacca Category=Condiments
UnitPrice=19.4500 UnitsInStock=27
+ProductID=66 ProductName=Louisiana Hot Spiced Okra
Category=Condiments UnitPrice=17.0000 UnitsInStock=4
+ProductID=15 ProductName=Genen Shouyu Category=Condiments
UnitPrice=15.5000 UnitsInStock=39
+ProductID=77 ProductName=Original Frankfurter grüne Soße
Category=Condiments UnitPrice=13.0000 UnitsInStock=32
+ProductID=3 ProductName=Aniseed Syrup Category=Condiments
UnitPrice=10.0000 UnitsInStock=13
+ProductID=20 ProductName=Sir Rodney's Marmalade
Category=Confections UnitPrice=81.0000 UnitsInStock=40
+ProductID=62 ProductName=Tarte au sucre Category=Confections
UnitPrice=49.3000 UnitsInStock=17
+ProductID=27 ProductName=Schoggi Schokolade Category=Confections
UnitPrice=43.9000 UnitsInStock=49
+ProductID=26 ProductName=Gumbär Gummibärchen
Category=Confections UnitPrice=31.2300 UnitsInStock=15
+ProductID=49 ProductName=Maxilaku Category=Confections
UnitPrice=20.0000 UnitsInStock=10
+ProductID=16 ProductName=Pavlova Category=Confections
UnitPrice=17.4500 UnitsInStock=29
+ProductID=50 ProductName=Valkoinen suklaa Category=Confections
UnitPrice=16.2500 UnitsInStock=65
+ProductID=25 ProductName=NuNuCa Nuß-Nougat-Creme
Category=Confections UnitPrice=14.0000 UnitsInStock=76
+ProductID=48 ProductName=Chocolade Category=Confections
UnitPrice=12.7500 UnitsInStock=15
+ProductID=68 ProductName=Scottish Longbreads
Category=Confections UnitPrice=12.5000 UnitsInStock=6
+ProductID=21 ProductName=Sir Rodney's Scones
Category=Confections UnitPrice=10.0000 UnitsInStock=3
+ProductID=47 ProductName=Zaanse koeken Category=Confections
UnitPrice=9.5000 UnitsInStock=36
+ProductID=19 ProductName=Teatime Chocolate Biscuits
Category=Confections UnitPrice=9.2000 UnitsInStock=25
+ProductID=59 ProductName=Raclette Courdavault Category=Dairy
Products UnitPrice=55.0000 UnitsInStock=79
+ProductID=12 ProductName=Queso Manchego La Pastora Category=Dairy
Products UnitPrice=38.0000 UnitsInStock=86
+ProductID=69 ProductName=Gudbrandsdalsost Category=Dairy
Products UnitPrice=36.0000 UnitsInStock=26
+ProductID=72 ProductName=Mozzarella di Giovanni Category=Dairy
Products UnitPrice=34.8000 UnitsInStock=14
+ProductID=60 ProductName=Camembert Pierrot Category=Dairy
Products UnitPrice=34.0000 UnitsInStock=19
+ProductID=32 ProductName=Mascarpone Fabioli Category=Dairy
Products UnitPrice=32.0000 UnitsInStock=9
+ProductID=71 ProductName=Flotemysost Category=Dairy
Products UnitPrice=21.5000 UnitsInStock=26
+ProductID=11 ProductName=Queso Cabrales Category=Dairy
Products UnitPrice=21.0000 UnitsInStock=22
+ProductID=31 ProductName=Gorgonzola Telino Category=Dairy
Products UnitPrice=12.5000 UnitsInStock=0
+ProductID=33 ProductName=Geitost Category=Dairy Products
UnitPrice=2.5000 UnitsInStock=112
+ProductID=56 ProductName=Gnocchi di nonna Alice
Category=Grains/Cereals UnitPrice=38.0000 UnitsInStock=21
+ProductID=64 ProductName=Wimmers gute Semmelknödel
Category=Grains/Cereals UnitPrice=33.2500 UnitsInStock=22
+ProductID=22 ProductName=Gustaf's Knäckebröd
Category=Grains/Cereals UnitPrice=21.0000 UnitsInStock=104
+ProductID=57 ProductName=Ravioli Angelo
Category=Grains/Cereals UnitPrice=19.5000 UnitsInStock=36
+ProductID=42 ProductName=Singaporean Hokkien Fried Mee
Category=Grains/Cereals UnitPrice=14.0000 UnitsInStock=26
+ProductID=23 ProductName=Tunnbröd Category=Grains/Cereals
UnitPrice=9.0000 UnitsInStock=61
+ProductID=52 ProductName=Filo Mix Category=Grains/Cereals
UnitPrice=7.0000 UnitsInStock=38
+ProductID=29 ProductName=Thüringer Rostbratwurst
Category=Meat/Poultry UnitPrice=123.7900 UnitsInStock=0
+ProductID=9 ProductName=Mishi Kobe Niku Category=Meat/Poultry
UnitPrice=97.0000 UnitsInStock=29
+ProductID=17 ProductName=Alice Mutton Category=Meat/Poultry
UnitPrice=39.0000 UnitsInStock=0
+ProductID=53 ProductName=Perth Pasties Category=Meat/Poultry
UnitPrice=32.8000 UnitsInStock=0
+ProductID=55 ProductName=Pâté chinois Category=Meat/Poultry
UnitPrice=24.0000 UnitsInStock=115
+ProductID=54 ProductName=Tourtière Category=Meat/Poultry
UnitPrice=7.4500 UnitsInStock=21
+ProductID=51 ProductName=Manjimup Dried Apples
Category=Produce UnitPrice=53.0000 UnitsInStock=20
+ProductID=28 ProductName=Rössle Sauerkraut Category=Produce
UnitPrice=45.6000 UnitsInStock=26
+ProductID=7 ProductName=Uncle Bob's Organic Dried Pears
Category=Produce UnitPrice=30.0000 UnitsInStock=15
+ProductID=14 ProductName=Tofu Category=Produce
UnitPrice=23.2500 UnitsInStock=35
+ProductID=74 ProductName=Longlife Tofu Category=Produce
UnitPrice=10.0000 UnitsInStock=4
+ProductID=18 ProductName=Carnarvon Tigers Category=Seafood
UnitPrice=62.5000 UnitsInStock=42
+ProductID=10 ProductName=Ikura Category=Seafood
UnitPrice=31.0000 UnitsInStock=31
+ProductID=37 ProductName=Gravad lax Category=Seafood
UnitPrice=26.0000 UnitsInStock=11
+ProductID=30 ProductName=Nord-Ost Matjeshering
Category=Seafood UnitPrice=25.8900 UnitsInStock=10
+ProductID=36 ProductName=Inlagd Sill Category=Seafood
UnitPrice=19.0000 UnitsInStock=112
+ProductID=40 ProductName=Boston Crab Meat Category=Seafood
UnitPrice=18.4000 UnitsInStock=123
+ProductID=73 ProductName=Röd Kaviar Category=Seafood
UnitPrice=15.0000 UnitsInStock=101
+ProductID=58 ProductName=Escargots de Bourgogne
Category=Seafood UnitPrice=13.2500 UnitsInStock=62
+ProductID=46 ProductName=Spegesild Category=Seafood
UnitPrice=12.0000 UnitsInStock=95
+ProductID=41 ProductName=Jack's New England Clam Chowder
Category=Seafood UnitPrice=9.6500 UnitsInStock=85
+ProductID=45 ProductName=Rogede sild Category=Seafood
UnitPrice=9.5000 UnitsInStock=5
+ProductID=13 ProductName=Konbu Category=Seafood
UnitPrice=6.0000 UnitsInStock=24
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq38.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,41 @@
+#summary Ordering Operators: ThenByDescending - Comparer
+#sidebar SamplesTree
+
+== Ordering Operators: ThenByDescending - Comparer ==
+
+This sample uses an OrderBy and a ThenBy clause with a custom comparer to
sort first by word length and then by a case-insensitive descending sort of
the words in an array.
+
+=== Code ===
+
+{{{
+public void Linq38() {
+ string[] words =
{ "aPPLE", "AbAcUs", "bRaNcH", "BlUeBeRrY", "ClOvEr", "cHeRry"};
+
+ var sortedWords =
+ words.OrderBy(a => a.Length)
+ .ThenByDescending(a => a, new CaseInsensitiveComparer());
+
+ ObjectDumper.Write(sortedWords);
+}
+
+public class CaseInsensitiveComparer : IComparer<string>
+{
+ public int Compare(string x, string y)
+ {
+ return string.Compare(x, y, StringComparison.OrdinalIgnoreCase);
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+aPPLE
+ClOvEr
+cHeRry
+bRaNcH
+AbAcUs
+BlUeBeRrY
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq39.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,37 @@
+#summary Ordering Operators: Reverse
+#sidebar SamplesTree
+
+== Ordering Operators: Reverse ==
+
+This sample uses Reverse to create a list of all digits in the array whose
second letter is 'i' that is reversed from the order in the original array.
+
+=== Code ===
+
+{{{
+public void Linq39() {
+ string[] digits =
{ "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"
};
+
+ var reversedIDigits = (
+ from d in digits
+ where d[1] == 'i'
+ select d)
+ .Reverse();
+
+ Console.WriteLine("A backwards list of the digits with a second
character of 'i':");
+ foreach (var d in reversedIDigits) {
+ Console.WriteLine(d);
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+A backwards list of the digits with a second character of 'i':
+nine
+eight
+six
+five
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq4.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,57 @@
+#summary Restriction Operators: Where - Drilldown
+#sidebar SamplesTree
+
+== Restriction Operators: Where - Drilldown ==
+
+This sample uses where to find all customers in Washington and then uses
the resulting sequence to drill down into their orders.
+
+=== Code ===
+
+{{{
+public void Linq4() {
+ List<Customer> customers = GetCustomerList();
+
+ var waCustomers =
+ from c in customers
+ where c.Region == "WA"
+ select c;
+
+ Console.WriteLine("Customers from Washington and their orders:");
+ foreach (var customer in waCustomers) {
+ Console.WriteLine("Customer {0}: {1}", customer.CustomerID,
customer.CompanyName);
+ foreach (var order in customer.Orders) {
+ Console.WriteLine(" Order {0}: {1}", order.OrderID,
order.OrderDate);
+ }
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+Customers from Washington and their orders:
+Customer LAZYK: Lazy K Kountry Store
+ Order 10482: 3/21/1997 12:00:00 AM
+ Order 10545: 5/22/1997 12:00:00 AM
+Customer TRAIH: Trail's Head Gourmet Provisioners
+ Order 10574: 6/19/1997 12:00:00 AM
+ Order 10577: 6/23/1997 12:00:00 AM
+ Order 10822: 1/8/1998 12:00:00 AM
+Customer WHITC: White Clover Markets
+ Order 10269: 7/31/1996 12:00:00 AM
+ Order 10344: 11/1/1996 12:00:00 AM
+ Order 10469: 3/10/1997 12:00:00 AM
+ Order 10483: 3/24/1997 12:00:00 AM
+ Order 10504: 4/11/1997 12:00:00 AM
+ Order 10596: 7/11/1997 12:00:00 AM
+ Order 10693: 10/6/1997 12:00:00 AM
+ Order 10696: 10/8/1997 12:00:00 AM
+ Order 10723: 10/30/1997 12:00:00 AM
+ Order 10740: 11/13/1997 12:00:00 AM
+ Order 10861: 1/30/1998 12:00:00 AM
+ Order 10904: 2/24/1998 12:00:00 AM
+ Order 11032: 4/17/1998 12:00:00 AM
+ Order 11066: 5/1/1998 12:00:00 AM
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq40.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,48 @@
+#summary Grouping Operators: GroupBy - Simple 1
+#sidebar SamplesTree
+
+== Grouping Operators: GroupBy - Simple 1 ==
+
+This sample uses group by to partition a list of numbers by their
remainder when divided by 5.
+
+=== Code ===
+
+{{{
+public void Linq40() {
+ int[] numbers = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 };
+
+ var numberGroups =
+ from n in numbers
+ group n by n % 5 into g
+ select new { Remainder = g.Key, Numbers = g };
+
+ foreach (var g in numberGroups) {
+ Console.WriteLine("Numbers with a remainder of {0} when divided by
5:", g.Remainder);
+ foreach (var n in g.Numbers) {
+ Console.WriteLine(n);
+ }
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+Numbers with a remainder of 0 when divided by 5:
+5
+0
+Numbers with a remainder of 4 when divided by 5:
+4
+9
+Numbers with a remainder of 1 when divided by 5:
+1
+6
+Numbers with a remainder of 3 when divided by 5:
+3
+8
+Numbers with a remainder of 2 when divided by 5:
+7
+2
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq41.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,42 @@
+#summary Grouping Operators: GroupBy - Simple 2
+#sidebar SamplesTree
+
+== Grouping Operators: GroupBy - Simple 2 ==
+
+This sample uses group by to partition a list of words by their first
letter.
+
+=== Code ===
+
+{{{
+public void Linq41() {
+ string[] words =
{ "blueberry", "chimpanzee", "abacus", "banana", "apple", "cheese" };
+
+ var wordGroups =
+ from w in words
+ group w by w[0] into g
+ select new { FirstLetter = g.Key, Words = g };
+
+ foreach (var g in wordGroups) {
+ Console.WriteLine("Words that start with the letter '{0}':",
g.FirstLetter);
+ foreach (var w in g.Words) {
+ Console.WriteLine(w);
+ }
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+Words that start with the letter 'b':
+blueberry
+banana
+Words that start with the letter 'c':
+chimpanzee
+cheese
+Words that start with the letter 'a':
+abacus
+apple
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq42.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,113 @@
+#summary Grouping Operators: GroupBy - Simple 3
+#sidebar SamplesTree
+
+== Grouping Operators: GroupBy - Simple 3 ==
+
+This sample uses group by to partition a list of products by category.
+
+=== Code ===
+
+{{{
+public void Linq42() {
+ List<Product> products = GetProductList();
+
+ var orderGroups =
+ from p in products
+ group p by p.Category into g
+ select new { Category = g.Key, Products = g };
+
+ ObjectDumper.Write(orderGroups, 1);
+}
+
+}}}
+
+=== Output ===
+
+{{{
+Category=Beverages Products=...
+ Products: ProductID=1 ProductName=Chai Category=Beverages
UnitPrice=18.0000 UnitsInStock=39
+ Products: ProductID=2 ProductName=Chang Category=Beverages
UnitPrice=19.0000 UnitsInStock=17
+ Products: ProductID=24 ProductName=Guaraná Fantástica
Category=Beverages UnitPrice=4.5000 UnitsInStock=20
+ Products: ProductID=34 ProductName=Sasquatch Ale
Category=Beverages UnitPrice=14.0000 UnitsInStock=111
+ Products: ProductID=35 ProductName=Steeleye Stout
Category=Beverages UnitPrice=18.0000 UnitsInStock=20
+ Products: ProductID=38 ProductName=Côte de Blaye
Category=Beverages UnitPrice=263.5000 UnitsInStock=17
+ Products: ProductID=39 ProductName=Chartreuse verte
Category=Beverages UnitPrice=18.0000 UnitsInStock=69
+ Products: ProductID=43 ProductName=Ipoh Coffee
Category=Beverages UnitPrice=46.0000 UnitsInStock=17
+ Products: ProductID=67 ProductName=Laughing Lumberjack Lager
Category=Beverages UnitPrice=14.0000 UnitsInStock=52
+ Products: ProductID=70 ProductName=Outback Lager
Category=Beverages UnitPrice=15.0000 UnitsInStock=15
+ Products: ProductID=75 ProductName=Rhönbräu Klosterbier
Category=Beverages UnitPrice=7.7500 UnitsInStock=125
+ Products: ProductID=76 ProductName=Lakkalikööri
Category=Beverages UnitPrice=18.0000 UnitsInStock=57
+Category=Condiments Products=...
+ Products: ProductID=3 ProductName=Aniseed Syrup
Category=Condiments UnitPrice=10.0000 UnitsInStock=13
+ Products: ProductID=4 ProductName=Chef Anton's Cajun Seasoning
Category=Condiments UnitPrice=22.0000 UnitsInStock=53
+ Products: ProductID=5 ProductName=Chef Anton's Gumbo Mix
Category=Condiments UnitPrice=21.3500 UnitsInStock=0
+ Products: ProductID=6 ProductName=Grandma's Boysenberry Spread
Category=Condiments UnitPrice=25.0000 UnitsInStock=120
+ Products: ProductID=8 ProductName=Northwoods Cranberry Sauce
Category=Condiments UnitPrice=40.0000 UnitsInStock=6
+ Products: ProductID=15 ProductName=Genen Shouyu
Category=Condiments UnitPrice=15.5000 UnitsInStock=39
+ Products: ProductID=44 ProductName=Gula Malacca
Category=Condiments UnitPrice=19.4500 UnitsInStock=27
+ Products: ProductID=61 ProductName=Sirop d'érable
Category=Condiments UnitPrice=28.5000 UnitsInStock=113
+ Products: ProductID=63 ProductName=Vegie-spread
Category=Condiments UnitPrice=43.9000 UnitsInStock=24
+ Products: ProductID=65 ProductName=Louisiana Fiery Hot Pepper Sauce
Category=Condiments UnitPrice=21.0500 UnitsInStock=76
+ Products: ProductID=66 ProductName=Louisiana Hot Spiced Okra
Category=Condiments UnitPrice=17.0000 UnitsInStock=4
+ Products: ProductID=77 ProductName=Original Frankfurter grüne Soße
Category=Condiments UnitPrice=13.0000 UnitsInStock=32
+Category=Produce Products=...
+ Products: ProductID=7 ProductName=Uncle Bob's Organic Dried Pears
Category=Produce UnitPrice=30.0000 UnitsInStock=15
+ Products: ProductID=14 ProductName=Tofu Category=Produce
UnitPrice=23.2500 UnitsInStock=35
+ Products: ProductID=28 ProductName=Rössle Sauerkraut
Category=Produce UnitPrice=45.6000 UnitsInStock=26
+ Products: ProductID=51 ProductName=Manjimup Dried Apples
Category=Produce UnitPrice=53.0000 UnitsInStock=20
+ Products: ProductID=74 ProductName=Longlife Tofu
Category=Produce UnitPrice=10.0000 UnitsInStock=4
+Category=Meat/Poultry Products=...
+ Products: ProductID=9 ProductName=Mishi Kobe Niku
Category=Meat/Poultry UnitPrice=97.0000 UnitsInStock=29
+ Products: ProductID=17 ProductName=Alice Mutton
Category=Meat/Poultry UnitPrice=39.0000 UnitsInStock=0
+ Products: ProductID=29 ProductName=Thüringer Rostbratwurst
Category=Meat/Poultry UnitPrice=123.7900 UnitsInStock=0
+ Products: ProductID=53 ProductName=Perth Pasties
Category=Meat/Poultry UnitPrice=32.8000 UnitsInStock=0
+ Products: ProductID=54 ProductName=Tourtière Category=Meat/Poultry
UnitPrice=7.4500 UnitsInStock=21
+ Products: ProductID=55 ProductName=Pâté chinois
Category=Meat/Poultry UnitPrice=24.0000 UnitsInStock=115
+Category=Seafood Products=...
+ Products: ProductID=10 ProductName=Ikura Category=Seafood
UnitPrice=31.0000 UnitsInStock=31
+ Products: ProductID=13 ProductName=Konbu Category=Seafood
UnitPrice=6.0000 UnitsInStock=24
+ Products: ProductID=18 ProductName=Carnarvon Tigers
Category=Seafood UnitPrice=62.5000 UnitsInStock=42
+ Products: ProductID=30 ProductName=Nord-Ost Matjeshering
Category=Seafood UnitPrice=25.8900 UnitsInStock=10
+ Products: ProductID=36 ProductName=Inlagd Sill
Category=Seafood UnitPrice=19.0000 UnitsInStock=112
+ Products: ProductID=37 ProductName=Gravad lax Category=Seafood
UnitPrice=26.0000 UnitsInStock=11
+ Products: ProductID=40 ProductName=Boston Crab Meat
Category=Seafood UnitPrice=18.4000 UnitsInStock=123
+ Products: ProductID=41 ProductName=Jack's New England Clam Chowder
Category=Seafood UnitPrice=9.6500 UnitsInStock=85
+ Products: ProductID=45 ProductName=Rogede sild
Category=Seafood UnitPrice=9.5000 UnitsInStock=5
+ Products: ProductID=46 ProductName=Spegesild Category=Seafood
UnitPrice=12.0000 UnitsInStock=95
+ Products: ProductID=58 ProductName=Escargots de Bourgogne
Category=Seafood UnitPrice=13.2500 UnitsInStock=62
+ Products: ProductID=73 ProductName=Röd Kaviar Category=Seafood
UnitPrice=15.0000 UnitsInStock=101
+Category=Dairy Products Products=...
+ Products: ProductID=11 ProductName=Queso Cabrales Category=Dairy
Products UnitPrice=21.0000 UnitsInStock=22
+ Products: ProductID=12 ProductName=Queso Manchego La Pastora
Category=Dairy Products UnitPrice=38.0000 UnitsInStock=86
+ Products: ProductID=31 ProductName=Gorgonzola Telino Category=Dairy
Products UnitPrice=12.5000 UnitsInStock=0
+ Products: ProductID=32 ProductName=Mascarpone Fabioli Category=Dairy
Products UnitPrice=32.0000 UnitsInStock=9
+ Products: ProductID=33 ProductName=Geitost Category=Dairy
Products UnitPrice=2.5000 UnitsInStock=112
+ Products: ProductID=59 ProductName=Raclette Courdavault
Category=Dairy Products UnitPrice=55.0000 UnitsInStock=79
+ Products: ProductID=60 ProductName=Camembert Pierrot Category=Dairy
Products UnitPrice=34.0000 UnitsInStock=19
+ Products: ProductID=69 ProductName=Gudbrandsdalsost Category=Dairy
Products UnitPrice=36.0000 UnitsInStock=26
+ Products: ProductID=71 ProductName=Flotemysost Category=Dairy
Products UnitPrice=21.5000 UnitsInStock=26
+ Products: ProductID=72 ProductName=Mozzarella di Giovanni
Category=Dairy Products UnitPrice=34.8000 UnitsInStock=14
+Category=Confections Products=...
+ Products: ProductID=16 ProductName=Pavlova Category=Confections
UnitPrice=17.4500 UnitsInStock=29
+ Products: ProductID=19 ProductName=Teatime Chocolate Biscuits
Category=Confections UnitPrice=9.2000 UnitsInStock=25
+ Products: ProductID=20 ProductName=Sir Rodney's Marmalade
Category=Confections UnitPrice=81.0000 UnitsInStock=40
+ Products: ProductID=21 ProductName=Sir Rodney's Scones
Category=Confections UnitPrice=10.0000 UnitsInStock=3
+ Products: ProductID=25 ProductName=NuNuCa Nuß-Nougat-Creme
Category=Confections UnitPrice=14.0000 UnitsInStock=76
+ Products: ProductID=26 ProductName=Gumbär Gummibärchen
Category=Confections UnitPrice=31.2300 UnitsInStock=15
+ Products: ProductID=27 ProductName=Schoggi Schokolade
Category=Confections UnitPrice=43.9000 UnitsInStock=49
+ Products: ProductID=47 ProductName=Zaanse koeken
Category=Confections UnitPrice=9.5000 UnitsInStock=36
+ Products: ProductID=48 ProductName=Chocolade Category=Confections
UnitPrice=12.7500 UnitsInStock=15
+ Products: ProductID=49 ProductName=Maxilaku Category=Confections
UnitPrice=20.0000 UnitsInStock=10
+ Products: ProductID=50 ProductName=Valkoinen suklaa
Category=Confections UnitPrice=16.2500 UnitsInStock=65
+ Products: ProductID=62 ProductName=Tarte au sucre
Category=Confections UnitPrice=49.3000 UnitsInStock=17
+ Products: ProductID=68 ProductName=Scottish Longbreads
Category=Confections UnitPrice=12.5000 UnitsInStock=6
+Category=Grains/Cereals Products=...
+ Products: ProductID=22 ProductName=Gustaf's Knäckebröd
Category=Grains/Cereals UnitPrice=21.0000 UnitsInStock=104
+ Products: ProductID=23 ProductName=Tunnbröd
Category=Grains/Cereals UnitPrice=9.0000 UnitsInStock=61
+ Products: ProductID=42 ProductName=Singaporean Hokkien Fried Mee
Category=Grains/Cereals UnitPrice=14.0000 UnitsInStock=26
+ Products: ProductID=52 ProductName=Filo Mix
Category=Grains/Cereals UnitPrice=7.0000 UnitsInStock=38
+ Products: ProductID=56 ProductName=Gnocchi di nonna Alice
Category=Grains/Cereals UnitPrice=38.0000 UnitsInStock=21
+ Products: ProductID=57 ProductName=Ravioli Angelo
Category=Grains/Cereals UnitPrice=19.5000 UnitsInStock=36
+ Products: ProductID=64 ProductName=Wimmers gute Semmelknödel
Category=Grains/Cereals UnitPrice=33.2500 UnitsInStock=22
+}}}
+
=======================================
--- /dev/null
+++ /SampleLinq43.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,1830 @@
+#summary Grouping Operators: GroupBy - Nested
+#sidebar SamplesTree
+
+== Grouping Operators: GroupBy - Nested ==
+
+This sample uses group by to partition a list of each customer's orders,
first by year, and then by month.
+
+=== Code ===
+
+{{{
+public void Linq43() {
+ List<Customer> customers = GetCustomerList();
+
+ var customerOrderGroups =
+ from c in customers
+ select
+ new {c.CompanyName,
+ YearGroups =
+ from o in c.Orders
+ group o by o.OrderDate.Year into yg
+ select
+ new {Year = yg.Key,
+ MonthGroups =
+ from o in yg
+ group o by o.OrderDate.Month into mg
+ select new { Month = mg.Key, Orders = mg
}
+ }
+ };
+
+ ObjectDumper.Write(customerOrderGroups, 3);
+}
+
+}}}
+
+=== Output ===
+
+{{{
+CompanyName=Alfreds Futterkiste YearGroups=...
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=8 Orders=...
+ Orders: OrderID=10643 OrderDate=8/25/1997 Total=814.50
+ MonthGroups: Month=10 Orders=...
+ Orders: OrderID=10692 OrderDate=10/3/1997 Total=878.00
+ Orders: OrderID=10702 OrderDate=10/13/1997 Total=330.00
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10835 OrderDate=1/15/1998 Total=845.80
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10952 OrderDate=3/16/1998 Total=471.20
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=11011 OrderDate=4/9/1998 Total=933.50
+CompanyName=Ana Trujillo Emparedados y helados YearGroups=...
+ YearGroups: Year=1996 MonthGroups=...
+ MonthGroups: Month=9 Orders=...
+ Orders: OrderID=10308 OrderDate=9/18/1996 Total=88.80
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=8 Orders=...
+ Orders: OrderID=10625 OrderDate=8/8/1997 Total=479.75
+ MonthGroups: Month=11 Orders=...
+ Orders: OrderID=10759 OrderDate=11/28/1997 Total=320.00
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10926 OrderDate=3/4/1998 Total=514.40
+CompanyName=Antonio Moreno Taquería YearGroups=...
+ YearGroups: Year=1996 MonthGroups=...
+ MonthGroups: Month=11 Orders=...
+ Orders: OrderID=10365 OrderDate=11/27/1996 Total=403.20
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=10507 OrderDate=4/15/1997 Total=749.06
+ MonthGroups: Month=5 Orders=...
+ Orders: OrderID=10535 OrderDate=5/13/1997 Total=1940.85
+ MonthGroups: Month=6 Orders=...
+ Orders: OrderID=10573 OrderDate=6/19/1997 Total=2082.00
+ MonthGroups: Month=9 Orders=...
+ Orders: OrderID=10677 OrderDate=9/22/1997 Total=813.36
+ Orders: OrderID=10682 OrderDate=9/25/1997 Total=375.50
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10856 OrderDate=1/28/1998 Total=660.00
+CompanyName=Around the Horn YearGroups=...
+ YearGroups: Year=1996 MonthGroups=...
+ MonthGroups: Month=11 Orders=...
+ Orders: OrderID=10355 OrderDate=11/15/1996 Total=480.00
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10383 OrderDate=12/16/1996 Total=899.00
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=2 Orders=...
+ Orders: OrderID=10453 OrderDate=2/21/1997 Total=407.70
+ MonthGroups: Month=6 Orders=...
+ Orders: OrderID=10558 OrderDate=6/4/1997 Total=2142.90
+ MonthGroups: Month=10 Orders=...
+ Orders: OrderID=10707 OrderDate=10/16/1997 Total=1641.00
+ MonthGroups: Month=11 Orders=...
+ Orders: OrderID=10741 OrderDate=11/14/1997 Total=228.00
+ Orders: OrderID=10743 OrderDate=11/17/1997 Total=319.20
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10768 OrderDate=12/8/1997 Total=1477.00
+ Orders: OrderID=10793 OrderDate=12/24/1997 Total=191.10
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=2 Orders=...
+ Orders: OrderID=10864 OrderDate=2/2/1998 Total=282.00
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10920 OrderDate=3/3/1998 Total=390.00
+ Orders: OrderID=10953 OrderDate=3/16/1998 Total=4441.25
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=11016 OrderDate=4/10/1998 Total=491.50
+CompanyName=Berglunds snabbköp YearGroups=...
+ YearGroups: Year=1996 MonthGroups=...
+ MonthGroups: Month=8 Orders=...
+ Orders: OrderID=10278 OrderDate=8/12/1996 Total=1488.80
+ Orders: OrderID=10280 OrderDate=8/14/1996 Total=613.20
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10384 OrderDate=12/16/1996 Total=2222.40
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=2 Orders=...
+ Orders: OrderID=10444 OrderDate=2/12/1997 Total=1031.70
+ Orders: OrderID=10445 OrderDate=2/13/1997 Total=174.90
+ MonthGroups: Month=5 Orders=...
+ Orders: OrderID=10524 OrderDate=5/1/1997 Total=3192.65
+ MonthGroups: Month=6 Orders=...
+ Orders: OrderID=10572 OrderDate=6/18/1997 Total=1501.08
+ MonthGroups: Month=8 Orders=...
+ Orders: OrderID=10626 OrderDate=8/11/1997 Total=1503.60
+ MonthGroups: Month=9 Orders=...
+ Orders: OrderID=10654 OrderDate=9/2/1997 Total=601.83
+ Orders: OrderID=10672 OrderDate=9/17/1997 Total=3815.25
+ MonthGroups: Month=10 Orders=...
+ Orders: OrderID=10689 OrderDate=10/1/1997 Total=472.50
+ MonthGroups: Month=11 Orders=...
+ Orders: OrderID=10733 OrderDate=11/7/1997 Total=1459.00
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10778 OrderDate=12/16/1997 Total=96.50
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10837 OrderDate=1/16/1998 Total=1064.50
+ Orders: OrderID=10857 OrderDate=1/28/1998 Total=2048.21
+ MonthGroups: Month=2 Orders=...
+ Orders: OrderID=10866 OrderDate=2/3/1998 Total=1096.20
+ Orders: OrderID=10875 OrderDate=2/6/1998 Total=709.55
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10924 OrderDate=3/4/1998 Total=1835.70
+CompanyName=Blauer See Delikatessen YearGroups=...
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=10501 OrderDate=4/9/1997 Total=149.00
+ Orders: OrderID=10509 OrderDate=4/17/1997 Total=136.80
+ MonthGroups: Month=6 Orders=...
+ Orders: OrderID=10582 OrderDate=6/27/1997 Total=330.00
+ MonthGroups: Month=7 Orders=...
+ Orders: OrderID=10614 OrderDate=7/29/1997 Total=464.00
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10853 OrderDate=1/27/1998 Total=625.00
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10956 OrderDate=3/17/1998 Total=677.00
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=11058 OrderDate=4/29/1998 Total=858.00
+CompanyName=Blondel père et fils YearGroups=...
+ YearGroups: Year=1996 MonthGroups=...
+ MonthGroups: Month=7 Orders=...
+ Orders: OrderID=10265 OrderDate=7/25/1996 Total=1176.00
+ MonthGroups: Month=9 Orders=...
+ Orders: OrderID=10297 OrderDate=9/4/1996 Total=1420.00
+ MonthGroups: Month=11 Orders=...
+ Orders: OrderID=10360 OrderDate=11/22/1996 Total=7390.20
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=2 Orders=...
+ Orders: OrderID=10436 OrderDate=2/5/1997 Total=1994.52
+ Orders: OrderID=10449 OrderDate=2/18/1997 Total=1838.20
+ MonthGroups: Month=6 Orders=...
+ Orders: OrderID=10559 OrderDate=6/5/1997 Total=520.41
+ Orders: OrderID=10566 OrderDate=6/12/1997 Total=1761.00
+ Orders: OrderID=10584 OrderDate=6/30/1997 Total=593.75
+ MonthGroups: Month=8 Orders=...
+ Orders: OrderID=10628 OrderDate=8/12/1997 Total=450.00
+ MonthGroups: Month=9 Orders=...
+ Orders: OrderID=10679 OrderDate=9/23/1997 Total=660.00
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10826 OrderDate=1/12/1998 Total=730.00
+CompanyName=Bólido Comidas preparadas YearGroups=...
+ YearGroups: Year=1996 MonthGroups=...
+ MonthGroups: Month=10 Orders=...
+ Orders: OrderID=10326 OrderDate=10/10/1996 Total=982.00
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10801 OrderDate=12/29/1997 Total=3026.85
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10970 OrderDate=3/24/1998 Total=224.00
+CompanyName=Bon app' YearGroups=...
+ YearGroups: Year=1996 MonthGroups=...
+ MonthGroups: Month=10 Orders=...
+ Orders: OrderID=10331 OrderDate=10/16/1996 Total=88.50
+ Orders: OrderID=10340 OrderDate=10/29/1996 Total=2436.18
+ MonthGroups: Month=11 Orders=...
+ Orders: OrderID=10362 OrderDate=11/25/1996 Total=1549.60
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10470 OrderDate=3/11/1997 Total=1820.80
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=10511 OrderDate=4/18/1997 Total=2550.00
+ MonthGroups: Month=5 Orders=...
+ Orders: OrderID=10525 OrderDate=5/2/1997 Total=818.40
+ MonthGroups: Month=9 Orders=...
+ Orders: OrderID=10663 OrderDate=9/10/1997 Total=1930.40
+ MonthGroups: Month=10 Orders=...
+ Orders: OrderID=10715 OrderDate=10/23/1997 Total=1296.00
+ MonthGroups: Month=11 Orders=...
+ Orders: OrderID=10730 OrderDate=11/5/1997 Total=484.26
+ Orders: OrderID=10732 OrderDate=11/6/1997 Total=360.00
+ Orders: OrderID=10755 OrderDate=11/26/1997 Total=1948.50
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10827 OrderDate=1/12/1998 Total=843.00
+ MonthGroups: Month=2 Orders=...
+ Orders: OrderID=10871 OrderDate=2/5/1998 Total=1979.23
+ Orders: OrderID=10876 OrderDate=2/9/1998 Total=917.00
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10932 OrderDate=3/6/1998 Total=1788.63
+ Orders: OrderID=10940 OrderDate=3/11/1998 Total=360.00
+ MonthGroups: Month=5 Orders=...
+ Orders: OrderID=11076 OrderDate=5/6/1998 Total=792.75
+CompanyName=Bottom-Dollar Markets YearGroups=...
+ YearGroups: Year=1996 MonthGroups=...
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10389 OrderDate=12/20/1996 Total=1832.80
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10410 OrderDate=1/10/1997 Total=802.00
+ Orders: OrderID=10411 OrderDate=1/10/1997 Total=966.80
+ Orders: OrderID=10431 OrderDate=1/30/1997 Total=1892.25
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=10492 OrderDate=4/1/1997 Total=851.20
+ MonthGroups: Month=11 Orders=...
+ Orders: OrderID=10742 OrderDate=11/14/1997 Total=3118.00
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10918 OrderDate=3/2/1998 Total=1447.50
+ Orders: OrderID=10944 OrderDate=3/12/1998 Total=1025.32
+ Orders: OrderID=10949 OrderDate=3/13/1998 Total=4422.00
+ Orders: OrderID=10975 OrderDate=3/25/1998 Total=717.50
+ Orders: OrderID=10982 OrderDate=3/27/1998 Total=1014.00
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=11027 OrderDate=4/16/1998 Total=877.72
+ Orders: OrderID=11045 OrderDate=4/23/1998 Total=1309.50
+ Orders: OrderID=11048 OrderDate=4/24/1998 Total=525.00
+CompanyName=B's Beverages YearGroups=...
+ YearGroups: Year=1996 MonthGroups=...
+ MonthGroups: Month=8 Orders=...
+ Orders: OrderID=10289 OrderDate=8/26/1996 Total=479.40
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10471 OrderDate=3/11/1997 Total=1328.00
+ Orders: OrderID=10484 OrderDate=3/24/1997 Total=386.20
+ MonthGroups: Month=5 Orders=...
+ Orders: OrderID=10538 OrderDate=5/15/1997 Total=139.80
+ Orders: OrderID=10539 OrderDate=5/16/1997 Total=355.50
+ MonthGroups: Month=6 Orders=...
+ Orders: OrderID=10578 OrderDate=6/24/1997 Total=477.00
+ MonthGroups: Month=7 Orders=...
+ Orders: OrderID=10599 OrderDate=7/15/1997 Total=493.00
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10943 OrderDate=3/11/1998 Total=711.00
+ Orders: OrderID=10947 OrderDate=3/13/1998 Total=220.00
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=11023 OrderDate=4/14/1998 Total=1500.00
+CompanyName=Cactus Comidas para llevar YearGroups=...
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=10521 OrderDate=4/29/1997 Total=225.50
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10782 OrderDate=12/17/1997 Total=12.50
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10819 OrderDate=1/7/1998 Total=477.00
+ MonthGroups: Month=2 Orders=...
+ Orders: OrderID=10881 OrderDate=2/11/1998 Total=150.00
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10937 OrderDate=3/10/1998 Total=644.80
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=11054 OrderDate=4/28/1998 Total=305.00
+CompanyName=Centro comercial Moctezuma YearGroups=...
+ YearGroups: Year=1996 MonthGroups=...
+ MonthGroups: Month=7 Orders=...
+ Orders: OrderID=10259 OrderDate=7/18/1996 Total=100.80
+CompanyName=Chop-suey Chinese YearGroups=...
+ YearGroups: Year=1996 MonthGroups=...
+ MonthGroups: Month=7 Orders=...
+ Orders: OrderID=10254 OrderDate=7/11/1996 Total=556.62
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10370 OrderDate=12/3/1996 Total=1117.60
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=10519 OrderDate=4/28/1997 Total=2314.20
+ MonthGroups: Month=11 Orders=...
+ Orders: OrderID=10731 OrderDate=11/6/1997 Total=1890.50
+ Orders: OrderID=10746 OrderDate=11/19/1997 Total=2311.70
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10966 OrderDate=3/20/1998 Total=1098.46
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=11029 OrderDate=4/16/1998 Total=1286.80
+ Orders: OrderID=11041 OrderDate=4/22/1998 Total=1773.00
+CompanyName=Comércio Mineiro YearGroups=...
+ YearGroups: Year=1996 MonthGroups=...
+ MonthGroups: Month=8 Orders=...
+ Orders: OrderID=10290 OrderDate=8/27/1996 Total=2169.00
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10466 OrderDate=3/6/1997 Total=216.00
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=10494 OrderDate=4/2/1997 Total=912.00
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10969 OrderDate=3/23/1998 Total=108.00
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=11042 OrderDate=4/22/1998 Total=405.75
+CompanyName=Consolidated Holdings YearGroups=...
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=2 Orders=...
+ Orders: OrderID=10435 OrderDate=2/4/1997 Total=631.60
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10462 OrderDate=3/3/1997 Total=156.00
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10848 OrderDate=1/23/1998 Total=931.50
+CompanyName=Drachenblut Delikatessen YearGroups=...
+ YearGroups: Year=1996 MonthGroups=...
+ MonthGroups: Month=11 Orders=...
+ Orders: OrderID=10363 OrderDate=11/26/1996 Total=447.20
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10391 OrderDate=12/23/1996 Total=86.40
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10797 OrderDate=12/25/1997 Total=420.00
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10825 OrderDate=1/9/1998 Total=1030.76
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=11036 OrderDate=4/20/1998 Total=1692.00
+ MonthGroups: Month=5 Orders=...
+ Orders: OrderID=11067 OrderDate=5/4/1998 Total=86.85
+CompanyName=Du monde entier YearGroups=...
+ YearGroups: Year=1996 MonthGroups=...
+ MonthGroups: Month=9 Orders=...
+ Orders: OrderID=10311 OrderDate=9/20/1996 Total=268.80
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=7 Orders=...
+ Orders: OrderID=10609 OrderDate=7/24/1997 Total=424.00
+ MonthGroups: Month=9 Orders=...
+ Orders: OrderID=10683 OrderDate=9/26/1997 Total=63.00
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=2 Orders=...
+ Orders: OrderID=10890 OrderDate=2/16/1998 Total=860.10
+CompanyName=Eastern Connection YearGroups=...
+ YearGroups: Year=1996 MonthGroups=...
+ MonthGroups: Month=11 Orders=...
+ Orders: OrderID=10364 OrderDate=11/26/1996 Total=950.00
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10400 OrderDate=1/1/1997 Total=3063.00
+ MonthGroups: Month=5 Orders=...
+ Orders: OrderID=10532 OrderDate=5/9/1997 Total=796.35
+ MonthGroups: Month=11 Orders=...
+ Orders: OrderID=10726 OrderDate=11/3/1997 Total=655.00
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10987 OrderDate=3/31/1998 Total=2772.00
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=11024 OrderDate=4/15/1998 Total=1966.81
+ Orders: OrderID=11047 OrderDate=4/24/1998 Total=817.88
+ Orders: OrderID=11056 OrderDate=4/28/1998 Total=3740.00
+CompanyName=Ernst Handel YearGroups=...
+ YearGroups: Year=1996 MonthGroups=...
+ MonthGroups: Month=7 Orders=...
+ Orders: OrderID=10258 OrderDate=7/17/1996 Total=1614.88
+ Orders: OrderID=10263 OrderDate=7/23/1996 Total=1873.80
+ MonthGroups: Month=11 Orders=...
+ Orders: OrderID=10351 OrderDate=11/11/1996 Total=5398.72
+ Orders: OrderID=10368 OrderDate=11/29/1996 Total=1689.78
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10382 OrderDate=12/13/1996 Total=2900.00
+ Orders: OrderID=10390 OrderDate=12/23/1996 Total=2090.88
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10402 OrderDate=1/2/1997 Total=2713.50
+ Orders: OrderID=10403 OrderDate=1/3/1997 Total=855.02
+ Orders: OrderID=10430 OrderDate=1/30/1997 Total=4899.20
+ MonthGroups: Month=2 Orders=...
+ Orders: OrderID=10442 OrderDate=2/11/1997 Total=1792.00
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=10514 OrderDate=4/22/1997 Total=8623.45
+ MonthGroups: Month=6 Orders=...
+ Orders: OrderID=10571 OrderDate=6/17/1997 Total=550.59
+ MonthGroups: Month=7 Orders=...
+ Orders: OrderID=10595 OrderDate=7/10/1997 Total=4725.00
+ MonthGroups: Month=8 Orders=...
+ Orders: OrderID=10633 OrderDate=8/15/1997 Total=5510.59
+ MonthGroups: Month=9 Orders=...
+ Orders: OrderID=10667 OrderDate=9/12/1997 Total=1536.80
+ MonthGroups: Month=10 Orders=...
+ Orders: OrderID=10698 OrderDate=10/9/1997 Total=3436.44
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10764 OrderDate=12/3/1997 Total=2286.00
+ Orders: OrderID=10771 OrderDate=12/10/1997 Total=344.00
+ Orders: OrderID=10773 OrderDate=12/11/1997 Total=2030.40
+ Orders: OrderID=10776 OrderDate=12/15/1997 Total=6635.28
+ Orders: OrderID=10795 OrderDate=12/24/1997 Total=2158.00
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10836 OrderDate=1/16/1998 Total=4705.50
+ Orders: OrderID=10854 OrderDate=1/27/1998 Total=2966.50
+ MonthGroups: Month=2 Orders=...
+ Orders: OrderID=10895 OrderDate=2/18/1998 Total=6379.40
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10968 OrderDate=3/23/1998 Total=1408.00
+ Orders: OrderID=10979 OrderDate=3/26/1998 Total=4813.50
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=10990 OrderDate=4/1/1998 Total=4288.85
+ Orders: OrderID=11008 OrderDate=4/8/1998 Total=4680.90
+ Orders: OrderID=11017 OrderDate=4/13/1998 Total=6750.00
+ MonthGroups: Month=5 Orders=...
+ Orders: OrderID=11072 OrderDate=5/5/1998 Total=5218.00
+CompanyName=Familia Arquibaldo YearGroups=...
+ YearGroups: Year=1996 MonthGroups=...
+ MonthGroups: Month=11 Orders=...
+ Orders: OrderID=10347 OrderDate=11/6/1996 Total=814.42
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10386 OrderDate=12/18/1996 Total=166.00
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10414 OrderDate=1/14/1997 Total=224.83
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=10512 OrderDate=4/21/1997 Total=525.30
+ MonthGroups: Month=6 Orders=...
+ Orders: OrderID=10581 OrderDate=6/26/1997 Total=310.00
+ MonthGroups: Month=8 Orders=...
+ Orders: OrderID=10650 OrderDate=8/29/1997 Total=1779.20
+ MonthGroups: Month=10 Orders=...
+ Orders: OrderID=10725 OrderDate=10/31/1997 Total=287.80
+CompanyName=FISSA Fabrica Inter. Salchichas S.A. YearGroups=...
+CompanyName=Folies gourmandes YearGroups=...
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10408 OrderDate=1/8/1997 Total=1622.40
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10480 OrderDate=3/20/1997 Total=756.00
+ MonthGroups: Month=8 Orders=...
+ Orders: OrderID=10634 OrderDate=8/15/1997 Total=4985.50
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10763 OrderDate=12/3/1997 Total=616.00
+ Orders: OrderID=10789 OrderDate=12/22/1997 Total=3687.00
+CompanyName=Folk och fä HB YearGroups=...
+ YearGroups: Year=1996 MonthGroups=...
+ MonthGroups: Month=7 Orders=...
+ Orders: OrderID=10264 OrderDate=7/24/1996 Total=695.62
+ MonthGroups: Month=10 Orders=...
+ Orders: OrderID=10327 OrderDate=10/11/1996 Total=1810.00
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10378 OrderDate=12/10/1996 Total=103.20
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=2 Orders=...
+ Orders: OrderID=10434 OrderDate=2/3/1997 Total=321.12
+ Orders: OrderID=10460 OrderDate=2/28/1997 Total=176.10
+ MonthGroups: Month=5 Orders=...
+ Orders: OrderID=10533 OrderDate=5/12/1997 Total=2222.20
+ MonthGroups: Month=6 Orders=...
+ Orders: OrderID=10561 OrderDate=6/6/1997 Total=2844.50
+ MonthGroups: Month=10 Orders=...
+ Orders: OrderID=10703 OrderDate=10/14/1997 Total=2545.00
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10762 OrderDate=12/2/1997 Total=4337.00
+ Orders: OrderID=10774 OrderDate=12/11/1997 Total=868.75
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10824 OrderDate=1/9/1998 Total=250.80
+ MonthGroups: Month=2 Orders=...
+ Orders: OrderID=10880 OrderDate=2/10/1998 Total=1500.00
+ Orders: OrderID=10902 OrderDate=2/23/1998 Total=863.43
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10955 OrderDate=3/17/1998 Total=74.40
+ Orders: OrderID=10977 OrderDate=3/26/1998 Total=2233.00
+ Orders: OrderID=10980 OrderDate=3/27/1998 Total=248.00
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=10993 OrderDate=4/1/1998 Total=4895.44
+ Orders: OrderID=11001 OrderDate=4/6/1998 Total=2769.00
+ Orders: OrderID=11050 OrderDate=4/27/1998 Total=810.00
+CompanyName=Frankenversand YearGroups=...
+ YearGroups: Year=1996 MonthGroups=...
+ MonthGroups: Month=7 Orders=...
+ Orders: OrderID=10267 OrderDate=7/29/1996 Total=3536.60
+ MonthGroups: Month=10 Orders=...
+ Orders: OrderID=10337 OrderDate=10/24/1996 Total=2467.00
+ Orders: OrderID=10342 OrderDate=10/30/1996 Total=1840.64
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10396 OrderDate=12/27/1996 Total=1903.80
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10488 OrderDate=3/27/1997 Total=1512.00
+ MonthGroups: Month=6 Orders=...
+ Orders: OrderID=10560 OrderDate=6/6/1997 Total=1072.42
+ MonthGroups: Month=8 Orders=...
+ Orders: OrderID=10623 OrderDate=8/7/1997 Total=1336.95
+ MonthGroups: Month=9 Orders=...
+ Orders: OrderID=10653 OrderDate=9/2/1997 Total=1083.15
+ Orders: OrderID=10670 OrderDate=9/16/1997 Total=2301.75
+ Orders: OrderID=10675 OrderDate=9/19/1997 Total=1423.00
+ MonthGroups: Month=10 Orders=...
+ Orders: OrderID=10717 OrderDate=10/24/1997 Total=1270.75
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10791 OrderDate=12/23/1997 Total=1829.76
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10859 OrderDate=1/29/1998 Total=1078.69
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10929 OrderDate=3/5/1998 Total=1174.75
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=11012 OrderDate=4/9/1998 Total=2825.30
+CompanyName=France restauration YearGroups=...
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=9 Orders=...
+ Orders: OrderID=10671 OrderDate=9/17/1997 Total=920.10
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10860 OrderDate=1/29/1998 Total=519.00
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10971 OrderDate=3/24/1998 Total=1733.06
+CompanyName=Franchi S.p.A. YearGroups=...
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10422 OrderDate=1/22/1997 Total=49.80
+ MonthGroups: Month=10 Orders=...
+ Orders: OrderID=10710 OrderDate=10/20/1997 Total=93.50
+ MonthGroups: Month=11 Orders=...
+ Orders: OrderID=10753 OrderDate=11/25/1997 Total=88.00
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10807 OrderDate=12/31/1997 Total=18.40
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=11026 OrderDate=4/15/1998 Total=1030.00
+ Orders: OrderID=11060 OrderDate=4/30/1998 Total=266.00
+CompanyName=Furia Bacalhau e Frutos do Mar YearGroups=...
+ YearGroups: Year=1996 MonthGroups=...
+ MonthGroups: Month=10 Orders=...
+ Orders: OrderID=10328 OrderDate=10/14/1996 Total=1168.00
+ MonthGroups: Month=11 Orders=...
+ Orders: OrderID=10352 OrderDate=11/12/1996 Total=136.30
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10464 OrderDate=3/4/1997 Total=1609.28
+ Orders: OrderID=10491 OrderDate=3/31/1997 Total=259.50
+ MonthGroups: Month=5 Orders=...
+ Orders: OrderID=10551 OrderDate=5/28/1997 Total=1677.30
+ MonthGroups: Month=7 Orders=...
+ Orders: OrderID=10604 OrderDate=7/18/1997 Total=230.85
+ MonthGroups: Month=9 Orders=...
+ Orders: OrderID=10664 OrderDate=9/10/1997 Total=1288.39
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10963 OrderDate=3/19/1998 Total=57.80
+CompanyName=Galería del gastrónomo YearGroups=...
+ YearGroups: Year=1996 MonthGroups=...
+ MonthGroups: Month=11 Orders=...
+ Orders: OrderID=10366 OrderDate=11/28/1996 Total=136.00
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10426 OrderDate=1/27/1997 Total=338.20
+ MonthGroups: Month=6 Orders=...
+ Orders: OrderID=10568 OrderDate=6/13/1997 Total=155.00
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=2 Orders=...
+ Orders: OrderID=10887 OrderDate=2/13/1998 Total=70.00
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10928 OrderDate=3/5/1998 Total=137.50
+CompanyName=Godos Cocina Típica YearGroups=...
+ YearGroups: Year=1996 MonthGroups=...
+ MonthGroups: Month=9 Orders=...
+ Orders: OrderID=10303 OrderDate=9/11/1996 Total=1117.80
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=5 Orders=...
+ Orders: OrderID=10550 OrderDate=5/28/1997 Total=683.30
+ MonthGroups: Month=8 Orders=...
+ Orders: OrderID=10629 OrderDate=8/12/1997 Total=2775.05
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=2 Orders=...
+ Orders: OrderID=10872 OrderDate=2/5/1998 Total=2058.46
+ Orders: OrderID=10874 OrderDate=2/6/1998 Total=310.00
+ Orders: OrderID=10888 OrderDate=2/16/1998 Total=605.00
+ Orders: OrderID=10911 OrderDate=2/26/1998 Total=858.00
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10948 OrderDate=3/13/1998 Total=2362.25
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=11009 OrderDate=4/8/1998 Total=616.50
+ Orders: OrderID=11037 OrderDate=4/21/1998 Total=60.00
+CompanyName=Gourmet Lanchonetes YearGroups=...
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10423 OrderDate=1/23/1997 Total=1020.00
+ MonthGroups: Month=9 Orders=...
+ Orders: OrderID=10652 OrderDate=9/1/1997 Total=318.84
+ Orders: OrderID=10685 OrderDate=9/29/1997 Total=801.10
+ MonthGroups: Month=10 Orders=...
+ Orders: OrderID=10709 OrderDate=10/17/1997 Total=3424.00
+ MonthGroups: Month=11 Orders=...
+ Orders: OrderID=10734 OrderDate=11/7/1997 Total=1498.35
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10777 OrderDate=12/15/1997 Total=224.00
+ Orders: OrderID=10790 OrderDate=12/22/1997 Total=722.50
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10959 OrderDate=3/18/1998 Total=131.75
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=11049 OrderDate=4/24/1998 Total=273.60
+CompanyName=Great Lakes Food Market YearGroups=...
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=5 Orders=...
+ Orders: OrderID=10528 OrderDate=5/6/1997 Total=392.20
+ MonthGroups: Month=7 Orders=...
+ Orders: OrderID=10589 OrderDate=7/4/1997 Total=72.00
+ Orders: OrderID=10616 OrderDate=7/31/1997 Total=4807.00
+ Orders: OrderID=10617 OrderDate=7/31/1997 Total=1402.50
+ MonthGroups: Month=9 Orders=...
+ Orders: OrderID=10656 OrderDate=9/4/1997 Total=604.22
+ Orders: OrderID=10681 OrderDate=9/25/1997 Total=1287.40
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10816 OrderDate=1/6/1998 Total=8446.45
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10936 OrderDate=3/9/1998 Total=456.00
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=11006 OrderDate=4/7/1998 Total=329.68
+ Orders: OrderID=11040 OrderDate=4/22/1998 Total=200.00
+ Orders: OrderID=11061 OrderDate=4/30/1998 Total=510.00
+CompanyName=GROSELLA-Restaurante YearGroups=...
+ YearGroups: Year=1996 MonthGroups=...
+ MonthGroups: Month=7 Orders=...
+ Orders: OrderID=10268 OrderDate=7/30/1996 Total=1101.20
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10785 OrderDate=12/18/1997 Total=387.50
+CompanyName=Hanari Carnes YearGroups=...
+ YearGroups: Year=1996 MonthGroups=...
+ MonthGroups: Month=7 Orders=...
+ Orders: OrderID=10250 OrderDate=7/8/1996 Total=1552.60
+ Orders: OrderID=10253 OrderDate=7/10/1996 Total=1444.80
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=5 Orders=...
+ Orders: OrderID=10541 OrderDate=5/19/1997 Total=1946.52
+ MonthGroups: Month=8 Orders=...
+ Orders: OrderID=10645 OrderDate=8/26/1997 Total=1535.00
+ MonthGroups: Month=10 Orders=...
+ Orders: OrderID=10690 OrderDate=10/2/1997 Total=862.50
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10770 OrderDate=12/9/1997 Total=236.25
+ Orders: OrderID=10783 OrderDate=12/18/1997 Total=1442.50
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=2 Orders=...
+ Orders: OrderID=10886 OrderDate=2/13/1998 Total=3127.50
+ Orders: OrderID=10903 OrderDate=2/24/1998 Total=932.05
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10922 OrderDate=3/3/1998 Total=742.50
+ Orders: OrderID=10925 OrderDate=3/4/1998 Total=475.15
+ Orders: OrderID=10981 OrderDate=3/27/1998 Total=15810.00
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=11022 OrderDate=4/14/1998 Total=1402.00
+ Orders: OrderID=11052 OrderDate=4/27/1998 Total=1332.00
+CompanyName=HILARIÓN-Abastos YearGroups=...
+ YearGroups: Year=1996 MonthGroups=...
+ MonthGroups: Month=7 Orders=...
+ Orders: OrderID=10257 OrderDate=7/16/1996 Total=1119.90
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10395 OrderDate=12/26/1996 Total=2122.92
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10476 OrderDate=3/17/1997 Total=180.48
+ Orders: OrderID=10486 OrderDate=3/26/1997 Total=1272.00
+ Orders: OrderID=10490 OrderDate=3/31/1997 Total=3163.20
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=10498 OrderDate=4/7/1997 Total=575.00
+ MonthGroups: Month=5 Orders=...
+ Orders: OrderID=10552 OrderDate=5/29/1997 Total=880.50
+ MonthGroups: Month=7 Orders=...
+ Orders: OrderID=10601 OrderDate=7/16/1997 Total=2285.00
+ Orders: OrderID=10613 OrderDate=7/29/1997 Total=353.20
+ MonthGroups: Month=8 Orders=...
+ Orders: OrderID=10641 OrderDate=8/22/1997 Total=2054.00
+ MonthGroups: Month=10 Orders=...
+ Orders: OrderID=10705 OrderDate=10/15/1997 Total=378.00
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10796 OrderDate=12/25/1997 Total=2341.36
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=2 Orders=...
+ Orders: OrderID=10863 OrderDate=2/2/1998 Total=441.15
+ Orders: OrderID=10901 OrderDate=2/23/1998 Total=934.50
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10957 OrderDate=3/18/1998 Total=1762.70
+ Orders: OrderID=10960 OrderDate=3/19/1998 Total=265.35
+ Orders: OrderID=10976 OrderDate=3/25/1998 Total=912.00
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=11055 OrderDate=4/28/1998 Total=1727.50
+CompanyName=Hungry Coyote Import Store YearGroups=...
+ YearGroups: Year=1996 MonthGroups=...
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10375 OrderDate=12/6/1996 Total=338.00
+ Orders: OrderID=10394 OrderDate=12/25/1996 Total=442.00
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10415 OrderDate=1/15/1997 Total=102.40
+ MonthGroups: Month=7 Orders=...
+ Orders: OrderID=10600 OrderDate=7/16/1997 Total=479.80
+ MonthGroups: Month=9 Orders=...
+ Orders: OrderID=10660 OrderDate=9/8/1997 Total=1701.00
+CompanyName=Hungry Owl All-Night Grocers YearGroups=...
+ YearGroups: Year=1996 MonthGroups=...
+ MonthGroups: Month=9 Orders=...
+ Orders: OrderID=10298 OrderDate=9/5/1996 Total=2645.00
+ Orders: OrderID=10309 OrderDate=9/19/1996 Total=1762.00
+ MonthGroups: Month=10 Orders=...
+ Orders: OrderID=10335 OrderDate=10/22/1996 Total=2036.16
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10373 OrderDate=12/5/1996 Total=1366.40
+ Orders: OrderID=10380 OrderDate=12/12/1996 Total=1313.82
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10429 OrderDate=1/29/1997 Total=1441.38
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=10503 OrderDate=4/11/1997 Total=2048.50
+ Orders: OrderID=10516 OrderDate=4/24/1997 Total=2381.05
+ MonthGroups: Month=6 Orders=...
+ Orders: OrderID=10567 OrderDate=6/12/1997 Total=2519.00
+ MonthGroups: Month=8 Orders=...
+ Orders: OrderID=10646 OrderDate=8/27/1997 Total=1446.00
+ MonthGroups: Month=9 Orders=...
+ Orders: OrderID=10661 OrderDate=9/9/1997 Total=562.60
+ Orders: OrderID=10687 OrderDate=9/30/1997 Total=4960.90
+ MonthGroups: Month=10 Orders=...
+ Orders: OrderID=10701 OrderDate=10/13/1997 Total=2864.50
+ Orders: OrderID=10712 OrderDate=10/21/1997 Total=1233.48
+ MonthGroups: Month=11 Orders=...
+ Orders: OrderID=10736 OrderDate=11/11/1997 Total=997.00
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=2 Orders=...
+ Orders: OrderID=10897 OrderDate=2/19/1998 Total=10835.24
+ Orders: OrderID=10912 OrderDate=2/26/1998 Total=6200.55
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10985 OrderDate=3/30/1998 Total=2023.38
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=11063 OrderDate=4/30/1998 Total=1342.95
+CompanyName=Island Trading YearGroups=...
+ YearGroups: Year=1996 MonthGroups=...
+ MonthGroups: Month=9 Orders=...
+ Orders: OrderID=10315 OrderDate=9/26/1996 Total=516.80
+ MonthGroups: Month=10 Orders=...
+ Orders: OrderID=10318 OrderDate=10/1/1996 Total=240.40
+ Orders: OrderID=10321 OrderDate=10/3/1996 Total=144.00
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10473 OrderDate=3/13/1997 Total=230.40
+ MonthGroups: Month=8 Orders=...
+ Orders: OrderID=10621 OrderDate=8/5/1997 Total=758.50
+ MonthGroups: Month=9 Orders=...
+ Orders: OrderID=10674 OrderDate=9/18/1997 Total=45.00
+ MonthGroups: Month=11 Orders=...
+ Orders: OrderID=10749 OrderDate=11/20/1997 Total=1080.00
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10798 OrderDate=12/26/1997 Total=446.60
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10829 OrderDate=1/13/1998 Total=1764.00
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10933 OrderDate=3/6/1998 Total=920.60
+CompanyName=Königlich Essen YearGroups=...
+ YearGroups: Year=1996 MonthGroups=...
+ MonthGroups: Month=10 Orders=...
+ Orders: OrderID=10323 OrderDate=10/7/1996 Total=164.40
+ Orders: OrderID=10325 OrderDate=10/9/1996 Total=1497.00
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=2 Orders=...
+ Orders: OrderID=10456 OrderDate=2/25/1997 Total=557.60
+ Orders: OrderID=10457 OrderDate=2/25/1997 Total=1584.00
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10468 OrderDate=3/7/1997 Total=717.60
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=10506 OrderDate=4/15/1997 Total=415.80
+ MonthGroups: Month=5 Orders=...
+ Orders: OrderID=10542 OrderDate=5/20/1997 Total=469.11
+ MonthGroups: Month=8 Orders=...
+ Orders: OrderID=10630 OrderDate=8/13/1997 Total=903.60
+ MonthGroups: Month=10 Orders=...
+ Orders: OrderID=10718 OrderDate=10/27/1997 Total=3463.00
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10799 OrderDate=12/26/1997 Total=1553.50
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10817 OrderDate=1/6/1998 Total=10952.84
+ Orders: OrderID=10849 OrderDate=1/23/1998 Total=967.82
+ MonthGroups: Month=2 Orders=...
+ Orders: OrderID=10893 OrderDate=2/18/1998 Total=5502.11
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=11028 OrderDate=4/16/1998 Total=2160.00
+CompanyName=La corne d'abondance YearGroups=...
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10858 OrderDate=1/29/1998 Total=649.00
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10927 OrderDate=3/5/1998 Total=800.00
+ Orders: OrderID=10972 OrderDate=3/24/1998 Total=251.50
+ Orders: OrderID=10973 OrderDate=3/24/1998 Total=291.55
+CompanyName=La maison d'Asie YearGroups=...
+ YearGroups: Year=1996 MonthGroups=...
+ MonthGroups: Month=11 Orders=...
+ Orders: OrderID=10350 OrderDate=11/11/1996 Total=642.06
+ Orders: OrderID=10358 OrderDate=11/20/1996 Total=429.40
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10371 OrderDate=12/3/1996 Total=72.96
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10413 OrderDate=1/14/1997 Total=2123.20
+ Orders: OrderID=10425 OrderDate=1/24/1997 Total=360.00
+ MonthGroups: Month=2 Orders=...
+ Orders: OrderID=10454 OrderDate=2/21/1997 Total=331.20
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=10493 OrderDate=4/2/1997 Total=608.40
+ Orders: OrderID=10500 OrderDate=4/9/1997 Total=523.26
+ MonthGroups: Month=7 Orders=...
+ Orders: OrderID=10610 OrderDate=7/25/1997 Total=299.25
+ MonthGroups: Month=8 Orders=...
+ Orders: OrderID=10631 OrderDate=8/14/1997 Total=55.80
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10787 OrderDate=12/19/1997 Total=2622.76
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10832 OrderDate=1/14/1998 Total=475.11
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10923 OrderDate=3/3/1998 Total=748.80
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=11051 OrderDate=4/27/1998 Total=36.00
+CompanyName=Laughing Bacchus Wine Cellars YearGroups=...
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=10495 OrderDate=4/3/1997 Total=278.00
+ MonthGroups: Month=8 Orders=...
+ Orders: OrderID=10620 OrderDate=8/5/1997 Total=57.50
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10810 OrderDate=1/1/1998 Total=187.00
+CompanyName=Lazy K Kountry Store YearGroups=...
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10482 OrderDate=3/21/1997 Total=147.00
+ MonthGroups: Month=5 Orders=...
+ Orders: OrderID=10545 OrderDate=5/22/1997 Total=210.00
+CompanyName=Lehmanns Marktstand YearGroups=...
+ YearGroups: Year=1996 MonthGroups=...
+ MonthGroups: Month=8 Orders=...
+ Orders: OrderID=10279 OrderDate=8/13/1996 Total=351.00
+ Orders: OrderID=10284 OrderDate=8/19/1996 Total=1170.38
+ MonthGroups: Month=10 Orders=...
+ Orders: OrderID=10343 OrderDate=10/31/1996 Total=1584.00
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=10497 OrderDate=4/4/1997 Total=1380.60
+ Orders: OrderID=10522 OrderDate=4/30/1997 Total=2318.24
+ MonthGroups: Month=5 Orders=...
+ Orders: OrderID=10534 OrderDate=5/12/1997 Total=465.70
+ Orders: OrderID=10536 OrderDate=5/14/1997 Total=1645.00
+ MonthGroups: Month=6 Orders=...
+ Orders: OrderID=10557 OrderDate=6/3/1997 Total=1152.50
+ MonthGroups: Month=7 Orders=...
+ Orders: OrderID=10592 OrderDate=7/8/1997 Total=516.47
+ Orders: OrderID=10593 OrderDate=7/9/1997 Total=1994.40
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10772 OrderDate=12/10/1997 Total=3603.22
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10862 OrderDate=1/30/1998 Total=581.00
+ MonthGroups: Month=2 Orders=...
+ Orders: OrderID=10891 OrderDate=2/17/1998 Total=368.93
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10934 OrderDate=3/9/1998 Total=500.00
+ MonthGroups: Month=5 Orders=...
+ Orders: OrderID=11070 OrderDate=5/5/1998 Total=1629.98
+CompanyName=Let's Stop N Shop YearGroups=...
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=6 Orders=...
+ Orders: OrderID=10579 OrderDate=6/25/1997 Total=317.75
+ MonthGroups: Month=10 Orders=...
+ Orders: OrderID=10719 OrderDate=10/27/1997 Total=844.25
+ MonthGroups: Month=11 Orders=...
+ Orders: OrderID=10735 OrderDate=11/10/1997 Total=536.40
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=2 Orders=...
+ Orders: OrderID=10884 OrderDate=2/12/1998 Total=1378.07
+CompanyName=LILA-Supermercado YearGroups=...
+ YearGroups: Year=1996 MonthGroups=...
+ MonthGroups: Month=8 Orders=...
+ Orders: OrderID=10283 OrderDate=8/16/1996 Total=1414.80
+ MonthGroups: Month=9 Orders=...
+ Orders: OrderID=10296 OrderDate=9/3/1996 Total=1050.60
+ MonthGroups: Month=10 Orders=...
+ Orders: OrderID=10330 OrderDate=10/16/1996 Total=1649.00
+ MonthGroups: Month=11 Orders=...
+ Orders: OrderID=10357 OrderDate=11/19/1996 Total=1167.68
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10381 OrderDate=12/12/1996 Total=112.00
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=2 Orders=...
+ Orders: OrderID=10461 OrderDate=2/28/1997 Total=1538.70
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=10499 OrderDate=4/8/1997 Total=1412.00
+ MonthGroups: Month=5 Orders=...
+ Orders: OrderID=10543 OrderDate=5/21/1997 Total=1504.50
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10780 OrderDate=12/16/1997 Total=720.00
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10823 OrderDate=1/9/1998 Total=2826.00
+ MonthGroups: Month=2 Orders=...
+ Orders: OrderID=10899 OrderDate=2/20/1998 Total=122.40
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=10997 OrderDate=4/3/1998 Total=1885.00
+ MonthGroups: Month=5 Orders=...
+ Orders: OrderID=11065 OrderDate=5/1/1998 Total=189.42
+ Orders: OrderID=11071 OrderDate=5/5/1998 Total=484.50
+CompanyName=LINO-Delicateses YearGroups=...
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10405 OrderDate=1/6/1997 Total=400.00
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10485 OrderDate=3/25/1997 Total=1584.00
+ MonthGroups: Month=8 Orders=...
+ Orders: OrderID=10638 OrderDate=8/20/1997 Total=2720.05
+ MonthGroups: Month=10 Orders=...
+ Orders: OrderID=10697 OrderDate=10/8/1997 Total=805.42
+ MonthGroups: Month=11 Orders=...
+ Orders: OrderID=10729 OrderDate=11/4/1997 Total=1850.00
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10811 OrderDate=1/2/1998 Total=852.00
+ Orders: OrderID=10838 OrderDate=1/19/1998 Total=1938.38
+ Orders: OrderID=10840 OrderDate=1/19/1998 Total=211.20
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10919 OrderDate=3/2/1998 Total=1122.80
+ Orders: OrderID=10954 OrderDate=3/17/1998 Total=1659.54
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=11014 OrderDate=4/10/1998 Total=243.18
+ Orders: OrderID=11039 OrderDate=4/21/1998 Total=3090.00
+CompanyName=Lonesome Pine Restaurant YearGroups=...
+ YearGroups: Year=1996 MonthGroups=...
+ MonthGroups: Month=9 Orders=...
+ Orders: OrderID=10307 OrderDate=9/17/1996 Total=424.00
+ Orders: OrderID=10317 OrderDate=9/30/1996 Total=288.00
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=5 Orders=...
+ Orders: OrderID=10544 OrderDate=5/21/1997 Total=417.20
+ MonthGroups: Month=9 Orders=...
+ Orders: OrderID=10662 OrderDate=9/9/1997 Total=125.00
+ Orders: OrderID=10665 OrderDate=9/11/1997 Total=1295.00
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=2 Orders=...
+ Orders: OrderID=10867 OrderDate=2/3/1998 Total=98.40
+ Orders: OrderID=10883 OrderDate=2/12/1998 Total=36.00
+ MonthGroups: Month=4 Orders=...
+ Orders: OrderID=11018 OrderDate=4/13/1998 Total=1575.00
+CompanyName=Magazzini Alimentari Riuniti YearGroups=...
+ YearGroups: Year=1996 MonthGroups=...
+ MonthGroups: Month=8 Orders=...
+ Orders: OrderID=10275 OrderDate=8/7/1996 Total=291.84
+ MonthGroups: Month=9 Orders=...
+ Orders: OrderID=10300 OrderDate=9/9/1996 Total=608.00
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10404 OrderDate=1/3/1997 Total=1591.25
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10467 OrderDate=3/6/1997 Total=235.20
+ MonthGroups: Month=8 Orders=...
+ Orders: OrderID=10635 OrderDate=8/18/1997 Total=1326.22
+ MonthGroups: Month=11 Orders=...
+ Orders: OrderID=10754 OrderDate=11/25/1997 Total=55.20
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10784 OrderDate=12/18/1997 Total=1488.00
+ YearGroups: Year=1998 MonthGroups=...
+ MonthGroups: Month=1 Orders=...
+ Orders: OrderID=10818 OrderDate=1/7/1998 Total=833.00
+ MonthGroups: Month=3 Orders=...
+ Orders: OrderID=10939 OrderDate=3/10/1998 Total=637.50
+ Orders: OrderID=10950 OrderDate=3/16/1998 Total=110.00
+CompanyName=Maison Dewey YearGroups=...
+ YearGroups: Year=1997 MonthGroups=...
+ MonthGroups: Month=5 Orders=...
+ Orders: OrderID=10529 OrderDate=5/7/1997 Total=946.00
+ MonthGroups: Month=8 Orders=...
+ Orders: OrderID=10649 OrderDate=8/28/1997 Total=1434.00
+ MonthGroups: Month=12 Orders=...
+ Orders: OrderID=10760 OrderDate=12/1/1997 Total=2917.00
***The diff for this file has been truncated for email.***
=======================================
--- /dev/null
+++ /SampleLinq44.wiki Sat Apr 30 06:23:33 2011
@@ -0,0 +1,51 @@
+#summary Grouping Operators: GroupBy - Comparer
+#sidebar SamplesTree
+
+== Grouping Operators: GroupBy - Comparer ==
+
+This sample uses GroupBy to partition trimmed elements of an array using a
custom comparer that matches words that are anagrams of each other.
+
+=== Code ===
+
+{{{
+public void Linq44() {
+ string[] anagrams = {"from ", " salt", " earn ", " last ", "
near ", " form "};
+
+ var orderGroups = anagrams.GroupBy(w => w.Trim(), new
AnagramEqualityComparer());
+
+ ObjectDumper.Write(orderGroups, 1);
+}
+
+public class AnagramEqualityComparer : IEqualityComparer<string>
+{
+ public bool Equals(string x, string y) {
+ return getCanonicalString(x) == getCanonicalString(y);
+ }
+
+ public int GetHashCode(string obj) {
+ return getCanonicalString(obj).GetHashCode();
+ }
+
+ private string getCanonicalString(string word) {
+ char[] wordChars = word.ToCharArray();
+ Array.Sort<char>(wordChars);
+ return new string(wordChars);
+ }
+}
+
+}}}
+
+=== Output ===
+
+{{{
+...
+ from
+ form
+...
+ salt
+ last
+...
+ earn
+ near
+}}}
+
=======================================
***Additional files exist in this changeset.***
Reply all
Reply to author
Forward
0 new messages