﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-R# .Net </title><link>http://www.cnblogs.com/RuiLei/</link><description>MSN:ruileier@hotmail.com
GMail:ruilei.blogs@gmail.com
</description><language>zh-cn</language><lastBuildDate>Thu, 04 Dec 2008 23:09:18 GMT</lastBuildDate><pubDate>Thu, 04 Dec 2008 23:09:18 GMT</pubDate><ttl>60</ttl><item><title>Dictionary  Serializer（Dictionary 序列化）</title><link>http://www.cnblogs.com/RuiLei/archive/2008/12/02/1345721.html</link><dc:creator>BrianLei</dc:creator><author>BrianLei</author><pubDate>Tue, 02 Dec 2008 05:43:00 GMT</pubDate><guid>http://www.cnblogs.com/RuiLei/archive/2008/12/02/1345721.html</guid><wfw:comment>http://www.cnblogs.com/RuiLei/comments/1345721.html</wfw:comment><comments>http://www.cnblogs.com/RuiLei/archive/2008/12/02/1345721.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/RuiLei/comments/commentRss/1345721.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/RuiLei/services/trackbacks/1345721.html</trackback:ping><description><![CDATA[<p><span style="font-family: Lucida Console">有关于Dictionary序列化，网上有许多。不过我都是没有成功应用；所以共享成功应用案例代码。</span></p>
<p><span style="font-family: Lucida Console">1.Dictionary本身是不支持序列化的，所以必须继承IXmlSerializable.</span></p>
<p><span style="font-family: Lucida Console">2.使用StringWriter进行最终String的转换工作，使用MemoryStream进行String输出，还是有异常报错。如：&#8220;十六进制Error!&#8221;</span></p>
<p><span style="font-family: Lucida Console">案例代码如下：</span></p>
<p><span style="font-family: Lucida Console">Step 1: Create Class ,Name Call SerializableDictionary</span></p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="font-family: Lucida Console"><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;SerializableDictionary</span><span style="color: #000000">&lt;</span><span style="color: #000000">TKey&nbsp;,&nbsp;TValue</span><span style="color: #000000">&gt;</span></span><span style="font-family: Lucida Console"><span style="color: #000000">&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;Dictionary</span><span style="color: #000000">&lt;</span><span style="color: #000000">TKey&nbsp;,&nbsp;TValue</span><span style="color: #000000">&gt;</span></span><span style="font-family: Lucida Console"><span style="color: #000000">&nbsp;,&nbsp;IXmlSerializable&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">#region</span><span style="color: #000000">&nbsp;IXmlSerializable&nbsp;成员</span></span><span style="color: #000000"><br />
<br />
<span style="font-family: Lucida Console">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: #0000ff"><span style="font-family: Lucida Console">public</span></span><span style="font-family: Lucida Console"><span style="color: #000000">&nbsp;XmlSchema&nbsp;GetSchema&nbsp;(&nbsp;)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">null</span></span><span style="font-family: Lucida Console"><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;summary&gt;</span></span><span style="color: #008000"><br />
<span style="font-family: Lucida Console">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: #808080"><span style="font-family: Lucida Console">///</span></span><span style="font-family: Lucida Console"><span style="color: #008000">&nbsp;反序列化<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;/summary&gt;</span></span><span style="color: #008000"><br />
<span style="font-family: Lucida Console">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-family: Lucida Console"><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;param&nbsp;name="reader"&gt;&lt;/param&gt;</span></span><span style="color: #808080"><br />
</span><span style="font-family: Lucida Console"><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span></span><span style="font-family: Lucida Console"><span style="color: #000000">&nbsp;ReadXml&nbsp;(&nbsp;XmlReader&nbsp;reader&nbsp;)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XmlSerializer&nbsp;keySerializer&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;XmlSerializer(&nbsp;</span><span style="color: #0000ff">typeof</span></span><span style="font-family: Lucida Console"><span style="color: #000000">(&nbsp;TKey&nbsp;)&nbsp;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XmlSerializer&nbsp;valueSerializer&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;XmlSerializer(&nbsp;</span><span style="color: #0000ff">typeof</span></span><span style="font-family: Lucida Console"><span style="color: #000000">(&nbsp;TValue&nbsp;)&nbsp;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(&nbsp;reader.IsEmptyElement&nbsp;</span><span style="color: #000000">||</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">!</span></span><span style="font-family: Lucida Console"><span style="color: #000000">reader.Read()&nbsp;)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span></span><span style="font-family: Lucida Console"><span style="color: #000000">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">&nbsp;(&nbsp;reader.NodeType&nbsp;</span><span style="color: #000000">!=</span></span><span style="font-family: Lucida Console"><span style="color: #000000">&nbsp;XmlNodeType.EndElement&nbsp;)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reader.ReadStartElement(&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">item</span><span style="color: #800000">"</span></span><span style="font-family: Lucida Console"><span style="color: #000000">&nbsp;);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reader.ReadStartElement(&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">key</span><span style="color: #800000">"</span></span><span style="font-family: Lucida Console"><span style="color: #000000">&nbsp;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TKey&nbsp;key&nbsp;</span><span style="color: #000000">=</span></span><span style="font-family: Lucida Console"><span style="color: #000000">&nbsp;(&nbsp;TKey&nbsp;)keySerializer.Deserialize(&nbsp;reader&nbsp;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reader.ReadEndElement();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reader.ReadStartElement(&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">value</span><span style="color: #800000">"</span></span><span style="font-family: Lucida Console"><span style="color: #000000">&nbsp;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TValue&nbsp;value&nbsp;</span><span style="color: #000000">=</span></span><span style="font-family: Lucida Console"><span style="color: #000000">&nbsp;(&nbsp;TValue&nbsp;)valueSerializer.Deserialize(&nbsp;reader&nbsp;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reader.ReadEndElement();<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reader.ReadEndElement();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reader.MoveToContent();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">this</span></span><span style="font-family: Lucida Console"><span style="color: #000000">.Add(&nbsp;key&nbsp;,&nbsp;value&nbsp;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reader.ReadEndElement();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;summary&gt;</span></span><span style="color: #008000"><br />
<span style="font-family: Lucida Console">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="color: #808080"><span style="font-family: Lucida Console">///</span></span><span style="font-family: Lucida Console"><span style="color: #008000">&nbsp;序列化<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;/summary&gt;</span></span><span style="color: #008000"><br />
<span style="font-family: Lucida Console">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-family: Lucida Console"><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;param&nbsp;name="writer"&gt;&lt;/param&gt;</span></span><span style="color: #808080"><br />
</span><span style="font-family: Lucida Console"><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span></span><span style="font-family: Lucida Console"><span style="color: #000000">&nbsp;WriteXml&nbsp;(&nbsp;XmlWriter&nbsp;writer&nbsp;)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XmlSerializer&nbsp;keySerializer&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;XmlSerializer(&nbsp;</span><span style="color: #0000ff">typeof</span></span><span style="font-family: Lucida Console"><span style="color: #000000">(&nbsp;TKey&nbsp;)&nbsp;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XmlSerializer&nbsp;valueSerializer&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;XmlSerializer(&nbsp;</span><span style="color: #0000ff">typeof</span></span><span style="font-family: Lucida Console"><span style="color: #000000">(&nbsp;TValue&nbsp;)&nbsp;);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">foreach</span><span style="color: #000000">&nbsp;(&nbsp;TKey&nbsp;key&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">this</span></span><span style="font-family: Lucida Console"><span style="color: #000000">.Keys&nbsp;)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;writer.WriteStartElement(&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">item</span><span style="color: #800000">"</span></span><span style="font-family: Lucida Console"><span style="color: #000000">&nbsp;);<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;writer.WriteStartElement(&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">key</span><span style="color: #800000">"</span></span><span style="font-family: Lucida Console"><span style="color: #000000">&nbsp;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;keySerializer.Serialize(&nbsp;writer&nbsp;,&nbsp;key&nbsp;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;writer.WriteEndElement();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;writer.WriteStartElement(&nbsp;</span><span style="color: #800000">"</span><span style="color: #800000">value</span><span style="color: #800000">"</span></span><span style="font-family: Lucida Console"><span style="color: #000000">&nbsp;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;valueSerializer.Serialize(&nbsp;writer&nbsp;,&nbsp;</span><span style="color: #0000ff">this</span></span><span style="font-family: Lucida Console"><span style="color: #000000">[key]&nbsp;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;writer.WriteEndElement();<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;writer.WriteEndElement();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">#endregion</span></span><span style="color: #000000"><br />
<span style="font-family: Lucida Console">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<p><span style="font-family: Lucida Console">&nbsp;</span></p>
<p><span style="font-family: Lucida Console">Step 2: Create Entity,Call Enity</span></p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="font-family: Lucida Console"><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;[Serializable]<br />
&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">class</span></span><span style="font-family: Lucida Console"><span style="color: #000000">&nbsp;Entity&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span></span><span style="font-family: Lucida Console"><span style="color: #000000">&nbsp;Int32&nbsp;id;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span></span><span style="font-family: Lucida Console"><span style="color: #000000">&nbsp;Int32&nbsp;ID&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">get</span><span style="color: #000000">&nbsp;{&nbsp;</span><span style="color: #0000ff">return</span></span><span style="font-family: Lucida Console"><span style="color: #000000">&nbsp;id;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">set</span><span style="color: #000000">&nbsp;{&nbsp;id&nbsp;</span><span style="color: #000000">=</span></span><span style="color: #000000"><span style="font-family: Lucida Console">&nbsp;value;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<p><span style="font-family: Lucida Console">&nbsp;</span></p>
<p><span style="font-family: Lucida Console">Step 3:Ready Demo Data</span></p>
<div class="cnblogs_code">
<p><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="font-family: Lucida Console"><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span><span style="color: #000000">&nbsp;SerializableDictionary</span><span style="color: #000000">&lt;</span><span style="color: #000000">Int32&nbsp;,&nbsp;List</span><span style="color: #000000">&lt;</span><span style="color: #000000">Entity</span><span style="color: #000000">&gt;&gt;</span></span><span style="color: #000000"><span style="font-family: Lucida Console">&nbsp;GetDict&nbsp;(&nbsp;)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SerializableDictionary&lt;Int32&nbsp;,&nbsp;List&lt;Entity&gt;&gt;&nbsp;dict&nbsp;=&nbsp;</span></span></p>
<p><span style="color: #000000"><span style="font-family: Lucida Console">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; new&nbsp;SerializableDictionary&lt;int&nbsp;,&nbsp;List&lt;Entity&gt;&gt;();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;List&lt;Entity&gt;&nbsp;el&nbsp;=&nbsp;new&nbsp;List&lt;Entity&gt;();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Entity&nbsp;entity&nbsp;=&nbsp;new&nbsp;Entity();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;entity.ID&nbsp;=&nbsp;1;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;el.Add(&nbsp;entity&nbsp;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dict.Add(&nbsp;1&nbsp;,&nbsp;el&nbsp;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;dict;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></p>
</div>
<p><span style="font-family: Lucida Console">&nbsp;</span></p>
<p><span style="font-family: Lucida Console">Step 4:Coding Serializer and Deserialize For Dictionary</span></p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="font-family: Lucida Console"><span style="color: #000000">&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span></span><span style="font-family: Lucida Console"><span style="color: #000000">&nbsp;String&nbsp;DictionarySerializer&nbsp;(&nbsp;Object&nbsp;obj&nbsp;,&nbsp;System.Type&nbsp;type&nbsp;)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;(&nbsp;StringWriter&nbsp;sw&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span></span><span style="font-family: Lucida Console"><span style="color: #000000">&nbsp;StringWriter()&nbsp;)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XmlSerializer&nbsp;ser&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span></span><span style="font-family: Lucida Console"><span style="color: #000000">&nbsp;XmlSerializer(&nbsp;type&nbsp;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ser.Serialize(&nbsp;sw&nbsp;,&nbsp;obj&nbsp;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span></span><span style="font-family: Lucida Console"><span style="color: #000000">&nbsp;sw.ToString();<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
<br />
&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">static</span></span><span style="font-family: Lucida Console"><span style="color: #000000">&nbsp;Object&nbsp;DictionaryDeserialize&nbsp;(&nbsp;Type&nbsp;type&nbsp;,&nbsp;String&nbsp;str&nbsp;)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;(&nbsp;StringReader&nbsp;sr&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span></span><span style="font-family: Lucida Console"><span style="color: #000000">&nbsp;StringReader(&nbsp;str&nbsp;)&nbsp;)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;XmlSerializer&nbsp;xz&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span></span><span style="font-family: Lucida Console"><span style="color: #000000">&nbsp;XmlSerializer(&nbsp;type&nbsp;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span></span><span style="color: #000000"><span style="font-family: Lucida Console">&nbsp;xz.Deserialize(&nbsp;sr&nbsp;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span></div>
<p><span style="font-family: Lucida Console">&nbsp;</span></p>
<p><span style="font-family: Lucida Console">Step 5:WebService and AnyWhere ,Apply to this Case</span></p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="font-family: Lucida Console"><span style="color: #000000">Service&nbsp;Serialize:(服务方序列化)<br />
[WebMethod]<br />
</span><span style="color: #0000ff">public</span></span><span style="font-family: Lucida Console"><span style="color: #000000">&nbsp;String&nbsp;GetX&nbsp;(&nbsp;Parameter&nbsp;query&nbsp;)&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span></span><span style="font-family: Lucida Console"><span style="color: #000000">&nbsp;<span style="color: red">DictionarySerializer</span>(&nbsp;Object&nbsp;,&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">typeof</span><span style="color: #000000">(&nbsp;<span style="color: red">SerializableDictionary</span></span><span style="color: #000000">&lt;</span><span style="color: #000000">Int32&nbsp;,&nbsp;List</span><span style="color: #000000">&lt;</span><span style="color: #000000">Entity</span><span style="color: #000000">&gt;&gt;</span></span><span style="font-family: Lucida Console"><span style="color: #000000">&nbsp;)&nbsp;);<br />
}<br />
<br />
Client&nbsp;Deserialize:(客户方反序列化)<br />
<br />
&nbsp;&nbsp;&nbsp;SerializableDictionary</span><span style="color: #000000">&lt;</span><span style="color: #000000">Int32&nbsp;,&nbsp;List</span><span style="color: #000000">&lt;</span><span style="color: #000000">Entity</span><span style="color: #000000">&gt;&gt;</span><span style="color: #000000">&nbsp;sd&nbsp;</span><span style="color: #000000">=</span></span><span style="font-family: Lucida Console"><span style="color: #000000">&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: red">DictionaryDeserialize</span>(&nbsp;</span><span style="color: #0000ff">typeof</span><span style="color: #000000">(&nbsp;SerializableDictionary</span><span style="color: #000000">&lt;</span><span style="color: #000000">Int32&nbsp;,&nbsp;List</span><span style="color: #000000">&lt;</span><span style="color: #000000">Entity</span><span style="color: #000000">&gt;&gt;</span></span><span style="font-family: Lucida Console"><span style="color: #000000">&nbsp;)&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;,GetX(&nbsp;query&nbsp;)&nbsp;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">as</span><span style="color: #000000">&nbsp;SerializableDictionary</span><span style="color: #000000">&lt;</span><span style="color: #000000">Int32&nbsp;,&nbsp;List</span><span style="color: #000000">&lt;</span><span style="color: #000000">Entity</span><span style="color: #000000">&gt;&gt;</span><span style="color: #000000">;</span></span></div>
<p><span style="font-family: Lucida Console">&nbsp;</span></p>
<p><span style="font-family: Lucida Console">Step 6: Output Results</span></p>
<div class="cnblogs_code"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="font-family: Lucida Console"><span style="color: #0000ff">&lt;?</span><span style="color: #ff00ff">xml&nbsp;version="1.0"&nbsp;encoding="utf-16"</span><span style="color: #0000ff">?&gt;</span></span><span style="color: #000000"><br />
</span><span style="font-family: Lucida Console"><span style="color: #0000ff">&lt;</span><span style="color: #800000">SerializableDictionaryOfInt32ListOfEntity</span><span style="color: #0000ff">&gt;</span></span><span style="color: #000000"><br />
<span style="font-family: Lucida Console">&nbsp;&nbsp;</span></span><span style="font-family: Lucida Console"><span style="color: #0000ff">&lt;</span><span style="color: #800000">item</span><span style="color: #0000ff">&gt;</span></span><span style="color: #000000"><br />
<span style="font-family: Lucida Console">&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-family: Lucida Console"><span style="color: #0000ff">&lt;</span><span style="color: #800000">key</span><span style="color: #0000ff">&gt;</span></span><span style="color: #000000"><br />
<span style="font-family: Lucida Console">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-family: Lucida Console"><span style="color: #0000ff">&lt;</span><span style="color: #800000">int</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">1</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">int</span><span style="color: #0000ff">&gt;</span></span><span style="color: #000000"><br />
<span style="font-family: Lucida Console">&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-family: Lucida Console"><span style="color: #0000ff">&lt;/</span><span style="color: #800000">key</span><span style="color: #0000ff">&gt;</span></span><span style="color: #000000"><br />
<span style="font-family: Lucida Console">&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-family: Lucida Console"><span style="color: #0000ff">&lt;</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span></span><span style="color: #000000"><br />
<span style="font-family: Lucida Console">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-family: Lucida Console"><span style="color: #0000ff">&lt;</span><span style="color: #800000">ArrayOfEntity&nbsp;</span><span style="color: #ff0000">xmlns:xsi</span><span style="color: #0000ff">="http://www.w3.org/2001/XMLSchema-instance"</span><span style="color: #ff0000">&nbsp;xmlns:xsd</span><span style="color: #0000ff">="http://www.w3.org/2001/XMLSchema"</span><span style="color: #0000ff">&gt;</span></span><span style="color: #000000"><br />
<span style="font-family: Lucida Console">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-family: Lucida Console"><span style="color: #0000ff">&lt;</span><span style="color: #800000">Entity</span><span style="color: #0000ff">&gt;</span></span><span style="color: #000000"><br />
<span style="font-family: Lucida Console">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-family: Lucida Console"><span style="color: #0000ff">&lt;</span><span style="color: #800000">ID</span><span style="color: #0000ff">&gt;</span><span style="color: #000000">1</span><span style="color: #0000ff">&lt;/</span><span style="color: #800000">ID</span><span style="color: #0000ff">&gt;</span></span><span style="color: #000000"><br />
<span style="font-family: Lucida Console">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-family: Lucida Console"><span style="color: #0000ff">&lt;/</span><span style="color: #800000">Entity</span><span style="color: #0000ff">&gt;</span></span><span style="color: #000000"><br />
<span style="font-family: Lucida Console">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-family: Lucida Console"><span style="color: #0000ff">&lt;/</span><span style="color: #800000">ArrayOfEntity</span><span style="color: #0000ff">&gt;</span></span><span style="color: #000000"><br />
<span style="font-family: Lucida Console">&nbsp;&nbsp;&nbsp;&nbsp;</span></span><span style="font-family: Lucida Console"><span style="color: #0000ff">&lt;/</span><span style="color: #800000">value</span><span style="color: #0000ff">&gt;</span></span><span style="color: #000000"><br />
<span style="font-family: Lucida Console">&nbsp;&nbsp;</span></span><span style="font-family: Lucida Console"><span style="color: #0000ff">&lt;/</span><span style="color: #800000">item</span><span style="color: #0000ff">&gt;</span></span><span style="color: #000000"><br />
</span><span style="font-family: Lucida Console"><span style="color: #0000ff">&lt;/</span><span style="color: #800000">SerializableDictionaryOfInt32ListOfEntity</span><span style="color: #0000ff">&gt;</span></span></div>
<p>&nbsp;</p>
<p><span style="font-family: Lucida Console">参考资源：</span></p>
<p><a href="http://www.mattberther.com/2004/06/14/serializing-an-idictionary-object/"><span style="font-family: Lucida Console">http://www.mattberther.com/2004/06/14/serializing-an-idictionary-object/</span></a></p>
<p><a href="http://sholliday.spaces.live.com/Blog/cns!A68482B9628A842A!114.entry"><span style="font-family: Lucida Console">http://sholliday.spaces.live.com/Blog/cns!A68482B9628A842A!114.entry</span></a></p>
<img src ="http://www.cnblogs.com/RuiLei/aggbug/1345721.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43791/" target="_blank">[新闻]雅虎新任CEO两大人选基本锁定</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>Dynamic Load &amp; Invoke Other Xap For SilverLight 2.0</title><link>http://www.cnblogs.com/RuiLei/archive/2008/11/13/1332204.html</link><dc:creator>BrianLei</dc:creator><author>BrianLei</author><pubDate>Thu, 13 Nov 2008 13:43:00 GMT</pubDate><guid>http://www.cnblogs.com/RuiLei/archive/2008/11/13/1332204.html</guid><wfw:comment>http://www.cnblogs.com/RuiLei/comments/1332204.html</wfw:comment><comments>http://www.cnblogs.com/RuiLei/archive/2008/11/13/1332204.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/RuiLei/comments/commentRss/1332204.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/RuiLei/services/trackbacks/1332204.html</trackback:ping><description><![CDATA[摘要: How to Dynamic Load & Invoke Other Xap For SilverLight 2.0?
    Answer for this!&nbsp;&nbsp;<a href='http://www.cnblogs.com/RuiLei/archive/2008/11/13/1332204.html'>阅读全文</a><img src ="http://www.cnblogs.com/RuiLei/aggbug/1332204.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43788/" target="_blank">[新闻]成龙谈创办汽车网站：不让我的受骗经历重演</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>[关注]个税起征点8000元什么时候到来？</title><link>http://www.cnblogs.com/RuiLei/archive/2008/11/11/1331141.html</link><dc:creator>BrianLei</dc:creator><author>BrianLei</author><pubDate>Tue, 11 Nov 2008 02:11:00 GMT</pubDate><guid>http://www.cnblogs.com/RuiLei/archive/2008/11/11/1331141.html</guid><wfw:comment>http://www.cnblogs.com/RuiLei/comments/1331141.html</wfw:comment><comments>http://www.cnblogs.com/RuiLei/archive/2008/11/11/1331141.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/RuiLei/comments/commentRss/1331141.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/RuiLei/services/trackbacks/1331141.html</trackback:ping><description><![CDATA[资本市场步步下跌，跌去的是百姓的购买力；CPI数据却节节上涨，大部分市民已经真切地感受到了物价上涨带来的压力。日前，国家税务总局发布的一组数据更是吸引了所有人的眼球：据统计，上半年完成个人所得税2135亿元，同比增长27.3%，比上半年GDP10.4%的增速快一倍多。
<p>　　&#8220;个税起征点应是8000元&#8221;，华东政法大学商学院院长汪康懋博士在接受记者采访时表示，近期业界提出5000元的起征点仍然显得偏低。&#8220;制定政策不能&#8216;毛估估&#8217;，一定要用数据来说话。&#8221;汪康懋表示，23年前设立税制时，百姓只有100元以下的平均收入，所得税的起征点为800元，相当于基本工资的8倍；现在的平均工资在1000元左右，以此推算，个税的起征点只有定在8000元才能体现当年制定税制时的初衷。换句话说，年收入10万元以下的居民或将成为&#8220;免税人群&#8221;。</p>
<p>　　值得注意的是，今年3月1日个税起征点刚刚从每月1600元调至2000元，在短短不到半年的时间内，个税起征点是否有必要再次大幅上调？答案是肯定的。</p>
<p>　　在国内通胀压力加大的情况下，无论百姓个人还是国内企业都已经感受到了很大的压力。数据显示，6月份CPI同比上涨7.1%，连续两个月出现回落，但考虑到上游工业品价格高企，其传导效应无法让人对通胀的前景掉以轻心。在企业层面，&#8220;中国制造&#8221;也不堪重负，发出了&#8220;SOS&#8221;的求救信号。</p>
<p>　　汪康懋分析认为，此前提升企业员工工资标准的政策出台虽然在一定层面上解决了提高居民收入的问题，但由此引发的成本增加却是一些中小企业难以承受的；再加上人民币升值和部分商品出口退税政策取消等因素的影响，这些中小企业的生存空间被进一步压缩。</p>
<p>　　与企业加工资和&#8220;发红包&#8221;相比，调高个税的起征点，&#8220;还富于民&#8221;，或许是一个更为两全其美的办法：一方面，中国中小企业可在与产品附加值更高、管理更为高效的国外企业竞争中继续保持人力成本方面的优势，保持&#8220;中国制造&#8221;在国际舞台之中的竞争力；另一方面，百姓也将在新的税收政策下得到实惠，切实分享到中国经济发展的成果。何况，国家税务总局原副局长许善达也曾表示，&#8220;个税起征点还有上升空间。&#8221;</p>
<p>　　此外，业内另有评论认为，国库储备过于丰厚也许并不能发挥其应有的作用，反而因受到汇率波动等因素的影响，面临资产&#8220;蒸发&#8221;的风险。如以我国已经达到1.8万亿美元规模的外汇储备为例，记者经初步估算后发现，假设外汇储备都以美元的形式进行配置，那么从今年1月2日美元兑人民币中间价7.2996到7月24日中间价6.8297期间，美元兑人民币中间价年内跌幅将近6.44%，外汇储备的&#8220;蒸发规模&#8221;也将达到1158.72亿美元之巨。</p>
  <img src ="http://www.cnblogs.com/RuiLei/aggbug/1331141.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43787/" target="_blank">[新闻]微软高管解密Windows7内幕：大量功能中国造</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>LINQ To SQL &amp;&amp; Lambda 练习题 Part One</title><link>http://www.cnblogs.com/RuiLei/archive/2008/11/09/1329905.html</link><dc:creator>BrianLei</dc:creator><author>BrianLei</author><pubDate>Sat, 08 Nov 2008 16:25:00 GMT</pubDate><guid>http://www.cnblogs.com/RuiLei/archive/2008/11/09/1329905.html</guid><wfw:comment>http://www.cnblogs.com/RuiLei/comments/1329905.html</wfw:comment><comments>http://www.cnblogs.com/RuiLei/archive/2008/11/09/1329905.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/RuiLei/comments/commentRss/1329905.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/RuiLei/services/trackbacks/1329905.html</trackback:ping><description><![CDATA[<p><span style="font-family:宋体">网上看人家的</span><span style="font-family:Lucida Console">Sql</span><span style="font-family:宋体">练习题，我用以</span><span style="font-family:Lucida Console">Linq to Sql ,Lambda</span><span style="font-family:宋体">两种写式翻译一下，供学习</span><span style="font-family:Lucida Console">LINQ,Lambda</span><span style="font-family:宋体">的同志参考</span><span style="font-family:Lucida Console">
		</span></p><p><span style="font-size:12pt"><strong><span style="font-family:宋体; background-color:yellow">颜色注释：</span><span style="font-family:Bradley Hand ITC"><span style="background-color:yellow">
						<span style="color:#c00000">SQL    </span><span style="color:#0080ff">LinqToSql    </span><span style="color:#00b050">Lambda    </span><span style="color:red">QA</span></span><span style="color:#00b050">
					</span></span></strong></span></p><p><span style="font-family:Lucida Console">1</span><span style="font-family:宋体">、</span><span style="font-family:Lucida Console">
		</span><span style="font-family:宋体">查询</span><span style="font-family:Lucida Console">Student</span><span style="font-family:宋体">表中的所有记录的</span><span style="font-family:Lucida Console">Sname</span><span style="font-family:宋体">、</span><span style="font-family:Lucida Console">Ssex</span><span style="font-family:宋体">和</span><span style="font-family:Lucida Console">Class</span><span style="font-family:宋体">列。</span><span style="font-family:Lucida Console"><br/><span style="color:#c00000">select sname,ssex,class from student</span><br/><span style="color:#0080ff">Linq:</span><br/>&#160;&#160;&#160; <span style="color:#0080ff">from s in Students<br/>&#160;&#160;&#160; select new {<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; s.SNAME,<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; s.SSEX,<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; s.CLASS<br/>&#160;&#160;&#160; }<br/></span><span style="color:#00b050">Lambda:<br/>&#160;&#160;&#160; Students.Select( s =&gt; new {<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; SNAME = s.SNAME,SSEX = s.SSEX,CLASS = s.CLASS<br/>&#160;&#160;&#160; })
</span></span></p><p><span style="font-family:Lucida Console"><span style="color:#0070c0"><br/></span>2</span><span style="font-family:宋体">、</span><span style="font-family:Lucida Console">
		</span><span style="font-family:宋体">查询教师所有的单位即不重复的</span><span style="font-family:Lucida Console">Depart</span><span style="font-family:宋体">列。</span><span style="font-family:Lucida Console"><br/><span style="color:#c00000">select distinct depart from teacher</span><br/><span style="color:#0080ff">Linq:</span><br/>&#160;&#160;&#160; <span style="color:#0080ff">from t in Teachers.Distinct()<br/>&#160;&#160;&#160; select t.DEPART<br/></span><span style="color:#00b050">Lambda:<br/>&#160;&#160;&#160; Teachers.Distinct().Select( t =&gt; t.DEPART) 
</span></span></p><p>
&#160;</p><p><span style="font-family:Lucida Console">3</span><span style="font-family:宋体">、</span><span style="font-family:Lucida Console">
		</span><span style="font-family:宋体">查询</span><span style="font-family:Lucida Console">Student</span><span style="font-family:宋体">表的所有记录。</span><span style="font-family:Lucida Console"><br/><span style="color:#c00000">select * from student</span><br/><span style="color:#0080ff">Linq:</span><br/>&#160;&#160;&#160; <span style="color:#0080ff">from s in Students<br/>&#160;&#160;&#160; select s<br/></span><span style="color:#00b050">Lambda:<br/>&#160;&#160;&#160; Students.Select( s =&gt; s)
</span></span></p><p><span style="font-family:Lucida Console"><span style="color:#00b050"><br/></span>4</span><span style="font-family:宋体">、</span><span style="font-family:Lucida Console">
		</span><span style="font-family:宋体">查询</span><span style="font-family:Lucida Console">Score</span><span style="font-family:宋体">表中成绩在</span><span style="font-family:Lucida Console">60</span><span style="font-family:宋体">到</span><span style="font-family:Lucida Console">80</span><span style="font-family:宋体">之间的所有记录。</span><span style="font-family:Lucida Console"><br/><span style="color:#c00000">select * from score where degree between 60 and 80</span><br/><span style="color:#0080ff">Linq:<br/>&#160;&#160;&#160; from s in Scores<br/>&#160;&#160;&#160; where s.DEGREE &gt;= 60 &amp;&amp; s.DEGREE &lt; 80<br/>&#160;&#160;&#160; select s</span><br/><span style="color:#00b050">Lambda:<br/>&#160;&#160;&#160; Scores.Where( <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; s =&gt; (<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; s.DEGREE &gt;= 60 &amp;&amp; s.DEGREE &lt; 80 <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; )<br/>&#160;&#160;&#160; ) 
</span></span></p><p>
&#160;</p><p><span style="font-family:Lucida Console">5</span><span style="font-family:宋体">、</span><span style="font-family:Lucida Console">
		</span><span style="font-family:宋体">查询</span><span style="font-family:Lucida Console">Score</span><span style="font-family:宋体">表中成绩为</span><span style="font-family:Lucida Console">85</span><span style="font-family:宋体">，</span><span style="font-family:Lucida Console">86</span><span style="font-family:宋体">或</span><span style="font-family:Lucida Console">88</span><span style="font-family:宋体">的记录。</span><span style="font-family:Lucida Console"><br/><span style="color:#c00000">select * from score where degree in (85,86,88)<br/></span><span style="color:#0080ff">Linq:<br/>In<br/>&#160;&#160;&#160; from s in Scores<br/>&#160;&#160;&#160; where (<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; new decimal[]{85,86,88}<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ).Contains(s.DEGREE)<br/>&#160;&#160;&#160; select s<br/></span><span style="color:#00b050">Lambda:<br/>&#160;&#160;&#160; Scores.Where( s =&gt; new Decimal[] {85,86,88}.Contains(s.DEGREE))<br/></span><span style="color:#0080ff">Not in<br/>&#160;&#160;&#160; from s in Scores<br/>&#160;&#160;&#160; where !(<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; new decimal[]{85,86,88}<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ).Contains(s.DEGREE)<br/>&#160;&#160;&#160; select s<br/></span><span style="color:#00b050">Lambda:<br/>&#160;&#160;&#160; Scores.Where( s =&gt; !(new Decimal[]{85,86,88}.Contains(s.DEGREE))) 
</span></span></p><p><span style="color:red"><span style="font-family:Lucida Console">&#160;&#160;&#160; Any()</span><span style="font-family:宋体">应用：双表进行</span><span style="font-family:Lucida Console">Any</span><span style="font-family:宋体">时，必须是主键为</span><span style="font-family:Lucida Console">(String)<br/>&#160;&#160;&#160; CustomerDemographics CustomerTypeID</span><span style="font-family:宋体">（</span><span style="font-family:Lucida Console">String</span><span style="font-family:宋体">）</span><span style="font-family:Lucida Console"><br/>&#160;&#160;&#160; CustomerCustomerDemos (CustomerID CustomerTypeID) (String)<br/>&#160;&#160;&#160; </span><span style="font-family:宋体">一个主键与二个主建进行</span><span style="font-family:Lucida Console">Any(</span><span style="font-family:宋体">或者是一对一关键进行</span><span style="font-family:Lucida Console">Any)<br/>&#160;&#160;&#160; </span><span style="font-family:宋体">不可，以二个主键于与一个主键进行</span><span style="font-family:Lucida Console">Any<br/>&#160;&#160;&#160; <br/>&#160;&#160;&#160; from e in CustomerDemographics<br/>&#160;&#160;&#160; where !e.CustomerCustomerDemos.Any()<br/>&#160;&#160;&#160; select e<br/>&#160;&#160;&#160; <br/>&#160;&#160;&#160; from c in Categories<br/>&#160;&#160;&#160; where !c.Products.Any()<br/>&#160;&#160;&#160; select c 
</span></span></p><p>
&#160;</p><p><span style="font-family:Lucida Console">6</span><span style="font-family:宋体">、</span><span style="font-family:Lucida Console">
		</span><span style="font-family:宋体">查询</span><span style="font-family:Lucida Console">Student</span><span style="font-family:宋体">表中</span><span style="font-family:Lucida Console">"95031"</span><span style="font-family:宋体">班或性别为</span><span style="font-family:Lucida Console">"</span><span style="font-family:宋体">女</span><span style="font-family:Lucida Console">"</span><span style="font-family:宋体">的同学记录。</span><span style="font-family:Lucida Console"><br/><span style="color:#c00000">select * from student where class ='95031' or ssex= N'</span></span><span style="font-family:宋体">女</span><span style="color:#c00000; font-family:Lucida Console">'<br/></span><span style="color:#0080ff"><span style="font-family:Lucida Console">Linq:<br/>&#160;&#160;&#160; from s in Students<br/>&#160;&#160;&#160; where s.CLASS == "95031" <br/>&#160;&#160;&#160;&#160;&#160;&#160; || s.CLASS == "</span><span style="font-family:宋体">女</span><span style="font-family:Lucida Console">"<br/>&#160;&#160;&#160; select s<br/></span></span><span style="color:#00b050"><span style="font-family:Lucida Console">Lambda:<br/>&#160;&#160;&#160; Students.Where(s =&gt; ( s.CLASS == "95031" || s.CLASS == "</span><span style="font-family:宋体">女</span><span style="font-family:Lucida Console">"))
</span></span></p><p><span style="font-family:Lucida Console"><span style="color:#00b050"><br/></span>7</span><span style="font-family:宋体">、</span><span style="font-family:Lucida Console">
		</span><span style="font-family:宋体">以</span><span style="font-family:Lucida Console">Class</span><span style="font-family:宋体">降序查询</span><span style="font-family:Lucida Console">Student</span><span style="font-family:宋体">表的所有记录。</span><span style="font-family:Lucida Console"><br/><span style="color:#c00000">select * from student order by Class DESC<br/></span><span style="color:#0080ff">Linq:<br/>&#160;&#160;&#160; from s in Students<br/>&#160;&#160;&#160; orderby s.CLASS descending<br/>&#160;&#160;&#160; select s<br/></span><span style="color:#00b050">Lambda:<br/>&#160;&#160;&#160; Students.OrderByDescending(s =&gt; s.CLASS) 
</span></span></p><p>
&#160;</p><p><span style="font-family:Lucida Console">8</span><span style="font-family:宋体">、</span><span style="font-family:Lucida Console">
		</span><span style="font-family:宋体">以</span><span style="font-family:Lucida Console">Cno</span><span style="font-family:宋体">升序、</span><span style="font-family:Lucida Console">Degree</span><span style="font-family:宋体">降序查询</span><span style="font-family:Lucida Console">Score</span><span style="font-family:宋体">表的所有记录。</span><span style="font-family:Lucida Console"><br/><span style="color:#c00000">select * from score order by Cno ASC,Degree DESC<br/></span><span style="color:#0080ff">Linq:(</span></span><span style="font-family:宋体">这里</span><span style="color:#0080ff"><span style="font-family:Lucida Console">Cno ASC</span><span style="font-family:宋体">在</span><span style="font-family:Lucida Console">linq</span><span style="font-family:宋体">中要写在最外面</span><span style="font-family:Lucida Console">)<br/>&#160;&#160;&#160; from s in Scores<br/>&#160;&#160;&#160; orderby s.DEGREE descending<br/>&#160;&#160;&#160; orderby s.CNO ascending <br/>&#160;&#160;&#160; select s<br/></span></span><span style="color:#00b050; font-family:Lucida Console">Lambda:<br/>&#160;&#160;&#160; Scores.OrderByDescending( s =&gt; s.DEGREE)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; .OrderBy( s =&gt; s.CNO)
</span></p><p><span style="font-family:Lucida Console"><span style="color:#00b050"><br/></span>9</span><span style="font-family:宋体">、</span><span style="font-family:Lucida Console">
		</span><span style="font-family:宋体">查询</span><span style="font-family:Lucida Console">"95031"</span><span style="font-family:宋体">班的学生人数。</span><span style="font-family:Lucida Console"><br/><span style="color:#c00000">select count(*) from student where class = '95031'<br/></span><span style="color:#0080ff">Linq:<br/>&#160;&#160;&#160; (&#160;&#160;&#160; from s in Students<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; where s.CLASS == "95031"<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; select s<br/>&#160;&#160;&#160; ).Count()<br/></span><span style="color:#00b050">Lambda:<br/>&#160;&#160;&#160; Students.Where( s =&gt; s.CLASS == "95031" )<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; .Select( s =&gt; s)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; .Count() 
</span></span></p><p>
&#160;</p><p><span style="font-family:Lucida Console">10</span><span style="font-family:宋体">、查询</span><span style="font-family:Lucida Console">Score</span><span style="font-family:宋体">表中的最高分的学生学号和课程号。</span><span style="font-family:Lucida Console"><br/><span style="color:#c00000">select distinct s.Sno,c.Cno from student as s,course as c ,score as sc <br/>where s.sno=(select sno from score where degree = (select max(degree) from score))<br/>and c.cno = (select cno from score where degree = (select max(degree) from score))<br/></span><span style="color:#0080ff">Linq:<br/>&#160;&#160;&#160; (<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; from s in Students<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; from c in Courses<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; from sc in Scores<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; let maxDegree = (from sss in Scores<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; select sss.DEGREE<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; ).Max()<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; let sno = (from ss in Scores<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; where ss.DEGREE == maxDegree<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; select ss.SNO).Single().ToString()<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; let cno = (from ssss in Scores<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; where ssss.DEGREE == maxDegree<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; select ssss.CNO).Single().ToString()<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; where s.SNO == sno &amp;&amp; c.CNO == cno<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; select new {<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; s.SNO,<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; c.CNO<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; }<br/>&#160;&#160;&#160; ).Distinct()<br/></span></span><span style="color:red"><span style="font-family:宋体">操作时问题？执行时报错：</span><span style="font-family:Lucida Console"> where s.SNO == sno</span><span style="font-family:宋体">（这行报出来的）</span><span style="font-family:Lucida Console">
			</span><span style="font-family:宋体">运算符</span><span style="font-family:Lucida Console">"=="</span><span style="font-family:宋体">无法应用于</span><span style="font-family:Lucida Console">"string"</span><span style="font-family:宋体">和</span><span style="font-family:Lucida Console">"System.Linq.IQueryable&lt;string&gt;"</span><span style="font-family:宋体">类型的操作数</span><span style="font-family:Lucida Console"><br/></span><span style="font-family:宋体">解决：</span><span style="font-family:Lucida Console"><br/></span><span style="font-family:宋体">原：</span><span style="font-family:Lucida Console">let sno = (from ss in Scores<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; where ss.DEGREE == maxDegree<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; select ss.SNO).ToString()<br/>Queryable().Single()</span><span style="font-family:宋体">返回序列的唯一元素；如果该序列并非恰好包含一个元素，则会引发异常。</span><span style="font-family:Lucida Console">
				<br/></span><span style="font-family:宋体">解：</span><span style="font-family:Lucida Console">let sno = (from ss in Scores<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; where ss.DEGREE == maxDegree<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; select ss.SNO).Single().ToString()<br/></span></span><span style="font-family:Lucida Console">
		</span></p><p><span style="font-family:Lucida Console">11</span><span style="font-family:宋体">、查询</span><span style="font-family:Lucida Console">'3-105'</span><span style="font-family:宋体">号课程的平均分。</span><span style="font-family:Lucida Console"><br/><span style="color:#c00000">select avg(degree) from score where cno = '3-105'</span><br/><span style="color:#0080ff">Linq:<br/>&#160;&#160;&#160; (<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; from s in Scores<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; where s.CNO == "3-105"<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; select s.DEGREE<br/>&#160;&#160;&#160; ).Average()<br/></span><span style="color:#00b050">Lambda:<br/>&#160;&#160;&#160; Scores.Where( s =&gt; s.CNO == "3-105")<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; .Select( s =&gt; s.DEGREE)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; .Average()
</span></span></p><p><span style="font-family:Lucida Console"><span style="color:#00b050"><br/></span>12</span><span style="font-family:宋体">、查询</span><span style="font-family:Lucida Console">Score</span><span style="font-family:宋体">表中至少有</span><span style="font-family:Lucida Console">5</span><span style="font-family:宋体">名学生选修的并以</span><span style="font-family:Lucida Console">3</span><span style="font-family:宋体">开头的课程的平均分数。</span><span style="font-family:Lucida Console"><br/><span style="color:#c00000">select avg(degree) from score where cno like '3%' group by Cno having count(*)&gt;=5</span><br/><span style="color:#0080ff">Linq:<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; from s in Scores<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; where s.CNO.StartsWith("3")<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; group s by s.CNO<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; into cc<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; where cc.Count() &gt;= 5<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; select cc.Average( c =&gt; c.DEGREE)<br/></span><span style="color:#00b050">Lambda:<br/>&#160;&#160;&#160; Scores.Where( s =&gt; s.CNO.StartsWith("3") )<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; .GroupBy( s =&gt; s.CNO )<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; .Where( cc =&gt; ( cc.Count() &gt;= 5) )<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; .Select( cc =&gt; cc.Average( c =&gt; c.DEGREE) )<br/></span><span style="color:red">Linq: SqlMethod<br/>like</span></span><span style="font-family:宋体">也可以这样写</span><span style="color:red; font-family:Lucida Console">:<br/>&#160;&#160;&#160; s.CNO.StartsWith("3") or SqlMethods.Like(s.CNO,"%3") 
</span></p><p>
&#160;</p><p><span style="font-family:Lucida Console">13</span><span style="font-family:宋体">、查询最低分大于</span><span style="font-family:Lucida Console">70</span><span style="font-family:宋体">，最高分小于</span><span style="font-family:Lucida Console">90</span><span style="font-family:宋体">的</span><span style="font-family:Lucida Console">Sno</span><span style="font-family:宋体">列。</span><span style="font-family:Lucida Console"><br/><span style="color:#c00000">select sno from score group by sno having min(degree) &gt; 70 and max(degree) &lt; 90<br/></span><span style="color:#0080ff">Linq:<br/>&#160;&#160;&#160; from s in Scores<br/>&#160;&#160;&#160; group s by s.SNO<br/>&#160;&#160;&#160; into ss<br/>&#160;&#160;&#160; where ss.Min(cc =&gt; cc.DEGREE) &gt; 70 &amp;&amp; ss.Max( cc =&gt; cc.DEGREE) &lt; 90<br/>&#160;&#160;&#160; select new<br/>&#160;&#160;&#160; {<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; sno = ss.Key<br/>&#160;&#160;&#160; }<br/></span><span style="color:#00b050">Lambda:<br/>&#160;&#160;&#160; Scores.GroupBy (s =&gt; s.SNO)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; .Where (ss =&gt; ((ss.Min (cc =&gt; cc.DEGREE) &gt; 70) &amp;&amp; (ss.Max (cc =&gt; cc.DEGREE) &lt; 90)))<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; .Select ( ss =&gt; new {<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; sno = ss.Key<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }) 
</span></span></p><p>
&#160;</p><p><span style="font-family:Lucida Console">14</span><span style="font-family:宋体">、查询所有学生的</span><span style="font-family:Lucida Console">Sname</span><span style="font-family:宋体">、</span><span style="font-family:Lucida Console">Cno</span><span style="font-family:宋体">和</span><span style="font-family:Lucida Console">Degree</span><span style="font-family:宋体">列。</span><span style="font-family:Lucida Console"><br/><span style="color:#c00000">select s.sname,sc.cno,sc.degree from student as s,score as sc where s.sno = sc.sno<br/></span>Linq:<br/>&#160;&#160;&#160; <span style="color:#0080ff">from s in Students<br/>&#160;&#160;&#160; join sc in Scores<br/>&#160;&#160;&#160; on s.SNO equals sc.SNO<br/>&#160;&#160;&#160; select new<br/>&#160;&#160;&#160; {<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; s.SNAME,<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; sc.CNO,<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; sc.DEGREE<br/>&#160;&#160;&#160; }<br/></span><span style="color:#00b050">Lambda:<br/>&#160;&#160;&#160; Students.Join(Scores, s =&gt; s.SNO,<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; sc =&gt; sc.SNO, <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; (s,sc) =&gt; new{<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; SNAME = s.SNAME,<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; CNO = sc.CNO,<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; DEGREE = sc.DEGREE<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }) 
</span></span></p><p>
&#160;</p><p><span style="font-family:Lucida Console">15</span><span style="font-family:宋体">、查询所有学生的</span><span style="font-family:Lucida Console">Sno</span><span style="font-family:宋体">、</span><span style="font-family:Lucida Console">Cname</span><span style="font-family:宋体">和</span><span style="font-family:Lucida Console">Degree</span><span style="font-family:宋体">列。</span><span style="font-family:Lucida Console"><br/><span style="color:#c00000">select sc.sno,c.cname,sc.degree from course as c,score as sc where c.cno = sc.cno<br/></span><span style="color:#0080ff">Linq:<br/>&#160;&#160;&#160; from c in Courses<br/>&#160;&#160;&#160; join sc in Scores<br/>&#160;&#160;&#160; on c.CNO equals sc.CNO<br/>&#160;&#160;&#160; select new<br/>&#160;&#160;&#160; {<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160; sc.SNO,c.CNAME,sc.DEGREE<br/>&#160;&#160;&#160; }<br/></span><span style="color:#00b050">Lambda:<br/>&#160;&#160;&#160; Courses.Join ( Scores, c =&gt; c.CNO, <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; sc =&gt; sc.CNO, <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; (c, sc) =&gt; new&#160; <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; {<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; SNO = sc.SNO, <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; CNAME = c.CNAME, <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; DEGREE = sc.DEGREE<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; }) 
</span></span></p><p>
&#160;</p><p><span style="font-family:Lucida Console">16</span><span style="font-family:宋体">、查询所有学生的</span><span style="font-family:Lucida Console">Sname</span><span style="font-family:宋体">、</span><span style="font-family:Lucida Console">Cname</span><span style="font-family:宋体">和</span><span style="font-family:Lucida Console">Degree</span><span style="font-family:宋体">列。</span><span style="font-family:Lucida Console"><br/><span style="color:#c00000">select s.sname,c.cname,sc.degree from student as s,course as c,score as sc where s.sno = sc.sno and c.cno = sc.cno<br/></span><span style="color:#0080ff">Linq:<br/>&#160;&#160;&#160; from s in Students<br/>&#160;&#160;&#160; from c in Courses<br/>&#160;&#160;&#160; from sc in Scores<br/>&#160;&#160;&#160; where s.SNO == sc.SNO &amp;&amp; c.CNO == sc.CNO<br/>&#160;&#160;&#160; select new { s.SNAME,c.CNAME,sc.DEGREE } 
</span></span></p><p><span style="font-family:Lucida Console">/</span><span style="font-family:宋体">未完待续。。（一共</span><span style="font-family:Lucida Console">43</span><span style="font-family:宋体">个）</span><span style="font-family:Lucida Console">
		</span></p><p><span style="font-family:Lucida Console">
		</span>&#160;</p>     <img src ="http://www.cnblogs.com/RuiLei/aggbug/1329905.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43786/" target="_blank">[新闻]Vista SP2 beta 具体更新的清单</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>Update on LINQ to SQL and LINQ to Entities Roadmap [ 关注 ]</title><link>http://www.cnblogs.com/RuiLei/archive/2008/11/08/1329647.html</link><dc:creator>BrianLei</dc:creator><author>BrianLei</author><pubDate>Sat, 08 Nov 2008 07:48:00 GMT</pubDate><guid>http://www.cnblogs.com/RuiLei/archive/2008/11/08/1329647.html</guid><wfw:comment>http://www.cnblogs.com/RuiLei/comments/1329647.html</wfw:comment><comments>http://www.cnblogs.com/RuiLei/archive/2008/11/08/1329647.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/RuiLei/comments/commentRss/1329647.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/RuiLei/services/trackbacks/1329647.html</trackback:ping><description><![CDATA[<h2><font size="3" face="Times New Roman">Since the release of LINQ to SQL and the Entity Framework, many questions have been raised about the future plans for the technologies and how they will relate to each other long term.     <br />During this week of PDC we are now at a point, with the announcement of Visual Studio 10 and the .NET Framework 4.0, that we can provide more clarity on our direction.       <br />&#160; <br />We have seen great momentum with LINQ in the last year.&#160; In .NET Framework 3.5 we released several LINQ providers, including LINQ to SQL which set the bar for a great programming model with LINQ over relational databases.&#160; In .NET 3.5 SP1, we followed up that investment with the Entity Framework enabling developers to build more advanced scenarios and to use LINQ against any database including SQL Server, Oracle, DB2, MySQL, etc.      <br />&#160; <br />We&#8217;re making significant investments in the Entity Framework such that as of .NET 4.0 the Entity Framework will be our recommended data access solution for LINQ to relational scenarios.&#160; We are listening to customers regarding LINQ to SQL and will continue to evolve the product based on feedback we receive from the community as well.</font></h2>  <div class="postcontent">   <p><font size="3" face="Times New Roman">Tim Mallalieu       <br />Program Manager, LINQ to SQL and Entity Framework</font></p>    <p><font size="3" face="Times New Roman"></font>&#160;</p>    <p>&#160;</p>    <div>自从LINQ to SQL和Entity Framework 发布之后，关于这两项技术将来的计划以及相关关系有很多疑问。</div>    <div>&#160;</div>    <div>在本周PDC会议期间，随着Visual Studio 10 和.NET Framework 4.0 的公布，现在，我们在产品路线上提供更清楚的阐述。</div>    <div>&#160;</div>    <div>去年，我们已经注意到了LINQ的巨大动力。在.NET Framework 3.5，我们发布了一些 LINQ providers，包括LINQ to SQL，它实现了LINQ基于关系数据库很好的编程模型。在.NET 3.5 SP1，我们进一步开发了Entity Framework，允许开发人员创建更先进的方案和使用对数据库使用LINQ技术，包括SQL Server、Oracle、DB2、MySql等等。</div>    <div>&#160;</div>    <div>在.NET 4.0，我们将对Entity Framework 做出显著的投入，推荐Entity Framework 作为LINQ对关系数据库的数据访问解决方案。同时，我们正在倾听用户对LINQ to SQL的意见，同时基于来自社区的想法，继续发展LINQ to SQL。</div>    <div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:84E294D0-71C9-4bd0-A0FE-95764E0368D9:93cc071a-bb82-432a-ad0b-2faa92c4198d" class="wlWriterSmartContent"><a href="http://maps.live.com/default.aspx?v=2&amp;cp=rycw0z4tp5h6&amp;lvl=2&amp;style=o&amp;scene=37499379&amp;mkt=en-US&amp;FORM=LLWR" id="map-c4b06bd8-a8e1-4ffb-8154-b81c4cbe4ab4" alt="单击可在 Live.com 上查看此地图" title="单击可在 Live.com 上查看此地图"><img src="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/UpdateonLINQtoSQLandLINQtoEntitiesRoadma_DF95/map-cca107f6d143.jpg" width="320" height="240" alt="Redmond"></a><br><label for="map-c4b06bd8-a8e1-4ffb-8154-b81c4cbe4ab4" style="font-size:.8em;">Redmond</label></div> </div><img src ="http://www.cnblogs.com/RuiLei/aggbug/1329647.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43785/" target="_blank">[新闻]纽约时报：Twitter为何拒绝Facebook收购</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>SilverLight2.0 DataService WCF 整合在一起的问题</title><link>http://www.cnblogs.com/RuiLei/archive/2008/10/31/1324049.html</link><dc:creator>BrianLei</dc:creator><author>BrianLei</author><pubDate>Fri, 31 Oct 2008 15:50:00 GMT</pubDate><guid>http://www.cnblogs.com/RuiLei/archive/2008/10/31/1324049.html</guid><wfw:comment>http://www.cnblogs.com/RuiLei/comments/1324049.html</wfw:comment><comments>http://www.cnblogs.com/RuiLei/archive/2008/10/31/1324049.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/RuiLei/comments/commentRss/1324049.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/RuiLei/services/trackbacks/1324049.html</trackback:ping><description><![CDATA[<p><strong><span style="font-family: 黑体">议题：</span></strong></p>
<blockquote>
<p><strong><span style="font-family: 黑体">1.WCF与DataService在一起使用，合适吗？</span></strong></p>
</blockquote>
<blockquote>
<p><strong><span style="font-family: 黑体">2.DataService身份验证的Exception?</span></strong></p>
</blockquote>
<p><span style="font-family: 黑体">&nbsp;</span></p>
<p><strong><em><span style="font-family: 黑体">1.WCF与DataService在一起使用，合适吗？</span></em></strong></p>
<p><span style="font-family: 黑体">创建DataService时，会在web.config中自动配置一项：</span></p>
<p><span style="font-family: 黑体">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="font-family: Lucida Console">&nbsp;&lt;serviceHostingEnvironment aspNetCompatibilityEnabled="true" /&gt; </span></span>
<p><span style="font-family: 黑体">当WCF与DataService共存时，噢，不好的现象发生；看这张图，是什么，无好激活服务， </span>
<p><span style="font-family: 黑体">噢，不.不.不.WCF无法正常运行了； <img src="http://www.cnblogs.com/Emoticons/tusiji/20333072.gif"  alt="" /></span>
<p><a href="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/SilverLight2.0DataServiceWCF_14F15/image_8.png"><span style="font-family: 黑体"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="418" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/SilverLight2.0DataServiceWCF_14F15/image_thumb_3.png" width="644" border="0" /></span></a><span style="font-family: 黑体"> </span>
<p><span style="font-family: 黑体">为什么？就是因为上面这个配置项造成的吗？ <img src="http://www.cnblogs.com/Emoticons/baimantou/202015214.gif"  alt="" /></span>
<p><span style="font-family: 黑体">&nbsp;&nbsp;&nbsp; 其实WCF 服务在 IIS 中可以与 ASP.NET 并行承载，也可以承载于兼容模式下。默认配置是与 ASP.NET 并行承载。 </span>
<p><span style="font-family: 黑体">WCF 服务的请求由 ASP.NET 运行时接收，但它不参与这些请求的处理。在工作进程内，WCF 运行时会检测传入请求并通过 WCF 堆栈对其进行处理。 </span>
<p><span style="font-family: 黑体">当 ASP.NET 和 WCF 并行工作时，有一些副作用需要引起注意。例如，您无法定义对 SVC 资源的访问控制列表，而且在此上下文中更为重要的是，当您从 WCF 服务内部进行访问时，HttpContext.Current 属性会始终返回 null。﻿因此，对于 WCF 服务来说，无法获取任何有关 ASP.NET 登录用户的信息。 </span>
<p><span style="font-family: 黑体">&nbsp;&nbsp;&nbsp; 通常，WCF 模型被设计为既适用于承载环境，又适用于传输机制。但是，要满足 AJAX 服务层中对安全的要求，WCF 与承载 ASP.NET 环境之间必须实施更为严格的协作。这正是 WCF 的 ASP.NET 兼容模式要解决的问题。 </span>
<p><span style="font-family: 黑体">&nbsp;&nbsp;&nbsp; 在兼容模式下运行时，WCF 服务全面介入 ASP.NET 请求的生命周期。产生的实际效果是 WCF 服务有权访问与 ASMX Web 服务相同的信息。这将使基于文件的授权得到支持，而且更为重要的是，HttpContext.Current 得到了正确的设置。 </span>
<p><span style="font-family: 黑体">兼容模式是在应用程序级启用的全局设置。但各项服务可以拒绝或接受此模式。要开启兼容模式，需要在配置文件中输入以下片段：</span>
<pre><span style="font-family: Lucida Console">&lt;system.serviceModel&gt;
&lt;serviceHostingEnvironment aspNetCompatibilityEnabled="true" /&gt;
&lt;/system.serviceModel&gt;</span></pre>
<p><span style="font-family: 黑体">各项服务通过 AspNetCompatibilityRequirements 属性的 RequirementsMode 属性（将针对服务类而不是约定进行设置）来声明它对兼容模式的支持。该属性的值为 Required、Allowed 和 NotAllowed。默认值为 <strong>NotAllowed</strong>，这意味着服务层中的每项 WCF 服务都必须将 RequirementsMode 属性改为 <strong>Allowed</strong> 或 <strong>Required</strong>。 </span>
<p><span style="font-family: 黑体">看到这里知道，原来如此。代码如何做呢？：）</span>
<pre><span style="font-family: Lucida Console">[AspNetCompatibilityRequirements(
RequirementsMode = AspNetCompatibilityRequirementsMode.Required)]
public class Service : IService
{
﻿。。。。
}</span></pre>
<pre><span style="font-family: 黑体">看看结果，哎哟。不错不错<img src="http://www.cnblogs.com/Emoticons/msn/shades_smile.gif"  alt="" />
</span><a href="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/SilverLight2.0DataServiceWCF_14F15/image_10.png"><span style="font-family: 黑体"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="484" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/SilverLight2.0DataServiceWCF_14F15/image_thumb_4.png" width="592" border="0" /></span></a><span style="font-family: 黑体"> </span></pre>
<pre><span style="font-family: 黑体">讲了不半天，有关于<strong>合适</strong>的话题好像还有没有，嗯？!谁知道，谁跟贴：）<img src="http://www.cnblogs.com/Emoticons/xd/014.gif"  alt="" /></span></pre>
<pre></pre>
<pre><em><strong></strong></em>&nbsp;</pre>
<pre><em><strong><span style="font-family: 黑体">2.DataService身份验证的Exception?</span></strong></em></pre>
<pre><span style="font-family: 黑体">异常，噢，又是一个异常，一个黄页。。<img src="http://www.cnblogs.com/Emoticons/baimantou/201937664.gif"  alt="" /></span></pre>
<p><a href="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/SilverLight2.0DataServiceWCF_14F15/image_2.png"><span style="font-family: 黑体"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="362" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/SilverLight2.0DataServiceWCF_14F15/image_thumb.png" width="644" border="0" /></span></a><span style="font-family: 黑体"> </span></p>
<p><span style="font-family: 黑体">其实解决很简单，三步走</span></p>
<p><strong><span style="font-family: 黑体"><span style="font-family: Lucida Console">Listen To Me<img src="http://www.cnblogs.com/Emoticons/yoyocici/224025817.gif"  alt="" /></span></span></strong></p>
<p><strong><span style="font-family: 黑体"><span style="font-family: Lucida Console"><span style="font-family: Comic Sans MS">Step 1: Ctrl+R then Input Inetmgr<img src="http://www.cnblogs.com/Emoticons/yoyocici/224024437.gif"  alt="" /></span></span></span></strong></p>
<p><strong><span style="font-family: 黑体"><span style="font-family: Lucida Console"><span style="font-family: Comic Sans MS">Step 2: unChecked anonymous visit<img src="http://www.cnblogs.com/Emoticons/yoyocici/224026138.gif"  alt="" /></span></span></span></strong></p>
<p><strong><span style="font-family: 黑体"><span style="font-family: Comic Sans MS">Step 3: return current project and Redo Create Virtual Directory(this Step is important .Remember it)<img src="http://www.cnblogs.com/Emoticons/yoyocici/223854210.gif"  alt="" /></span></span></strong></p>
<p><a href="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/SilverLight2.0DataServiceWCF_14F15/image_4.png"><span style="font-family: 黑体"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="484" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/SilverLight2.0DataServiceWCF_14F15/image_thumb_1.png" width="524" border="0" /></span></a><span style="font-family: 黑体"> Step 2</span></p>
<p><a href="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/SilverLight2.0DataServiceWCF_14F15/image_6.png"><span style="font-family: 黑体"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="241" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/SilverLight2.0DataServiceWCF_14F15/image_thumb_2.png" width="644" border="0" /></span></a><span style="font-family: 黑体"> Step3</span></p>
<p><span style="font-family: 黑体">噢，看看这是什么，结果出来，服务O了。睡觉了。：）<img src="http://www.cnblogs.com/Emoticons/yoyocici/223853762.gif"  alt="" /></span></p>
<p><a href="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/SilverLight2.0DataServiceWCF_14F15/image_12.png"><span style="font-family: 黑体"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="281" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/SilverLight2.0DataServiceWCF_14F15/image_thumb_5.png" width="650" border="0" /></span></a></p>
 <img src ="http://www.cnblogs.com/RuiLei/aggbug/1324049.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43784/" target="_blank">[新闻]雅虎再传收购 股价一路狂飙</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>SilverLight Topic---如何在Blend 2.0中设置ListBox.ItemTemplate?</title><link>http://www.cnblogs.com/RuiLei/archive/2008/10/30/1323279.html</link><dc:creator>BrianLei</dc:creator><author>BrianLei</author><pubDate>Thu, 30 Oct 2008 12:22:00 GMT</pubDate><guid>http://www.cnblogs.com/RuiLei/archive/2008/10/30/1323279.html</guid><wfw:comment>http://www.cnblogs.com/RuiLei/comments/1323279.html</wfw:comment><comments>http://www.cnblogs.com/RuiLei/archive/2008/10/30/1323279.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/RuiLei/comments/commentRss/1323279.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/RuiLei/services/trackbacks/1323279.html</trackback:ping><description><![CDATA[<p>XAML Code:</p>
<blockquote>
<p>&lt;ListBox Margin="0,40,0,0" Grid.Row="1"&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ListBox.ItemTemplate&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;DataTemplate/&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/ListBox.ItemTemplate&gt;</p>
<p>&lt;/ListBox&gt;</p>
</blockquote>
<p>有人问我：以上这段代码使用Blend 2.0在设计界面，如何设置出来？<img src="http://www.cnblogs.com/Emoticons/baimantou/114325779.gif"  alt="" /></p>
<p>这是需要费点事的。我在此把图贴出来，如果你也遇到的问题，你也可以参考一下吗？</p>
<p>&nbsp;</p>
<p><strong>Step 1.选中ListBox,在属性----杂项---ItemTemplate</strong></p>
<p><a href="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/SilverLightTopicBlend2.0Lis.ItemTemplate_11E08/image_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="657" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/SilverLightTopicBlend2.0Lis.ItemTemplate_11E08/image_thumb.png" width="804" border="0" /></a> </p>
<p><strong>Step 2.选择数据绑定</strong></p>
<p><a href="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/SilverLightTopicBlend2.0Lis.ItemTemplate_11E08/image_4.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="484" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/SilverLightTopicBlend2.0Lis.ItemTemplate_11E08/image_thumb_1.png" width="386" border="0" /></a> </p>
<p><strong>Step 3.添加CLR对象，创建DataTemplate</strong></p>
<p><a href="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/SilverLightTopicBlend2.0Lis.ItemTemplate_11E08/image_6.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="771" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/SilverLightTopicBlend2.0Lis.ItemTemplate_11E08/image_thumb_2.png" width="750" border="0" /></a> </p>
<p><strong>Step 4.已经有代码生成看出来 ItemTemplate="{Binding Mode=OneWay ....}"</strong></p>
<p><a href="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/SilverLightTopicBlend2.0Lis.ItemTemplate_11E08/image_8.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="772" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/SilverLightTopicBlend2.0Lis.ItemTemplate_11E08/image_thumb_3.png" width="955" border="0" /></a> </p>
<p><strong>Step 5.再次选择ItemTemplate，选择转换为本地值</strong></p>
<p><a href="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/SilverLightTopicBlend2.0Lis.ItemTemplate_11E08/image_10.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="436" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/SilverLightTopicBlend2.0Lis.ItemTemplate_11E08/image_thumb_4.png" width="321" border="0" /></a> </p>
<p><strong>Step 6.OK,Over</strong></p>
<p><a href="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/SilverLightTopicBlend2.0Lis.ItemTemplate_11E08/image_12.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="427" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/SilverLightTopicBlend2.0Lis.ItemTemplate_11E08/image_thumb_5.png" width="572" border="0" /></a> </p>
<p>&nbsp;</p>
<p><strong>（当然对于开发人员肯定不会这样周折的！,那如果你不是开发人员呢？）</strong></p>
<p><strong></strong>&nbsp;</p>
<p><strong>不过我在使用Blend做界面，还是感觉有时不如直接写代码快啊。</strong></p>
 <img src ="http://www.cnblogs.com/RuiLei/aggbug/1323279.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43783/" target="_blank">[新闻]维基百科欲提高易用性 隐藏更多技术元素</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>Linq Coding-- Part Nine(IEnumerable、IQueryable、Set)</title><link>http://www.cnblogs.com/RuiLei/archive/2008/10/09/1307556.html</link><dc:creator>BrianLei</dc:creator><author>BrianLei</author><pubDate>Thu, 09 Oct 2008 13:46:00 GMT</pubDate><guid>http://www.cnblogs.com/RuiLei/archive/2008/10/09/1307556.html</guid><wfw:comment>http://www.cnblogs.com/RuiLei/comments/1307556.html</wfw:comment><comments>http://www.cnblogs.com/RuiLei/archive/2008/10/09/1307556.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnblogs.com/RuiLei/comments/commentRss/1307556.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/RuiLei/services/trackbacks/1307556.html</trackback:ping><description><![CDATA[<p>&nbsp;<span style="font-family: 黑体">&nbsp;&nbsp;&nbsp; <img alt="" src="http://www.cnblogs.com/Emoticons/QQ/thumbsup.gif" />&nbsp;Enumerable 是 .NET FX 3.5 System.Linq 中新增的类型，实现了大量 IEnumerable&lt;T&gt; 扩展方法， 所有直接或间接实现该接口的类型都可以使用 Linq to Object 语法； 而 Queryable 则针对 IQueryable&lt;T&gt; 扩展，主要用于 DLinq 的操作，IQueryable&lt;T&gt; 继承自 IEnumerable&lt;T&gt;。 </span></p>
<p><span style="font-family: 黑体">提供对未指定数据类型的特定数据源的查询进行计算的功能。 IQueryable 接口由查询提供程序实现。 该接口只能由同时实现 IQueryable&lt;(Of &lt;(T&gt;)&gt;) 的提供程序实现。 如果该提供程序不实现 IQueryable&lt;(Of &lt;(T&gt;)&gt;)，则无法对提供程序数据源使用标准查询运算符。 IQueryable 接口继承 IEnumerable 接口，以便在前者表示一个查询时可以枚举该查询的结果。 枚举强制执行与 IQueryable 对象关联的表达式目录树。 &#8220;执行表达式目录树&#8221;的定义是查询提供程序所特有的。 </span></p>
<p><span style="font-family: 黑体">例如，它可能涉及将表达式目录树转换为适用于基础数据源的查询语言。 </span></p>
<p><span style="font-family: 黑体">在调用 Execute 方法时将执行不返回可枚举结果的查询。</span></p>
<p><span style="font-family: 黑体">IEnumerable和IQueryable的区别：<img alt="" src="http://www.cnblogs.com/Emoticons/tusiji/203330297.gif" /></span></p>
<p><span style="font-family: Lucida Console">&nbsp;&nbsp;&nbsp;&nbsp;In one of our current projects we're using LINQ TO SQL to conquer the object-relational impedance mismatch. We all had some experience with LINQ and deferred execution. But it was getting obvious that we all needed to deeply internalize the difference between IEnumerable and IQueryable.&nbsp;<img alt="" src="http://www.cnblogs.com/Emoticons/baimantou/114325779.gif" /><br />
&nbsp;&nbsp;&nbsp;&nbsp;EntitySet&lt;T&gt; and Table&lt;T&gt; both implement the IEnumerable&lt;T&gt; interface. However, if there would not be IQueryable all querying functionality - including filtering and sorting - would be executed on the client. To optimize a query for a specific data source we need a way to analyze a query and its definition. That&#8217;s where expression trees are coming in. As we know an expression tree represents the logical definition of a method call which can be manipulated and transformed.&nbsp;<img alt="" src="http://www.cnblogs.com/Emoticons/baimantou/223332676.gif" /><br />
&nbsp;&nbsp;&nbsp;&nbsp;So we have a mutable logical definition of our query on one side and a queryable data source on the other. The Property Provider on IQueryable now returns an IQueryProvider which is exactly what we need here.&nbsp;<img alt="" src="http://www.cnblogs.com/Emoticons/baimantou/202015934.gif" /><br />
</span></p>
<div class="cnblogs_code" style="font-family: Lucida Console"><img id="Code_Closed_Image_215646" onclick="this.style.display='none'; document.getElementById('Code_Closed_Text_215646').style.display='none'; document.getElementById('Code_Open_Image_215646').style.display='inline'; document.getElementById('Code_Open_Text_215646').style.display='inline';" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif" width="11" align="top"><img id="Code_Open_Image_215646" style="display: none" onclick="this.style.display='none'; document.getElementById('Code_Open_Text_215646').style.display='none'; getElementById('Code_Closed_Image_215646').style.display='inline'; getElementById('Code_Closed_Text_215646').style.display='inline';" height="16" src="http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif" width="11" align="top"><span class="cnblogs_code_Collapse" id="Code_Closed_Text_215646">Code</span><span id="Code_Open_Text_215646" style="display: none"><br />
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">interface</span><span style="color: #000000">&nbsp;IQueryProvider&nbsp;{&nbsp;<br />
&nbsp;&nbsp;IQueryable&nbsp;CreateQuery(Expression&nbsp;expression);&nbsp;<br />
&nbsp;&nbsp;IQueryable</span><span style="color: #000000">&lt;</span><span style="color: #000000">TElement</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;CreateQuery</span><span style="color: #000000">&lt;</span><span style="color: #000000">TElement</span><span style="color: #000000">&gt;</span><span style="color: #000000">(Expression&nbsp;expression);&nbsp;<br />
&nbsp;&nbsp;</span><span style="color: #0000ff">object</span><span style="color: #000000">&nbsp;Execute(Expression&nbsp;expression);&nbsp;<br />
&nbsp;&nbsp;TResult&nbsp;Execute</span><span style="color: #000000">&lt;</span><span style="color: #000000">TResult</span><span style="color: #000000">&gt;</span><span style="color: #000000">(Expression&nbsp;expression);&nbsp;<br />
}&nbsp;</span></span></div>
<p><br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="font-family: Lucida Console">There are 2 interesting operations and their generic counterparts. The generic versions are used most of the time and they perform better because we can avoid using reflection for object instantiation. CreateQuery() does precisely what we are looking for. It takes an expression tree as argument and returns another IQueryable based on the logical definition of the tree. When the returned IQueryable is enumerated it will invoke the query provider which will then process this specific query expression.&nbsp;<img alt="" src="http://www.cnblogs.com/Emoticons/tusiji/20333097.gif" /><br style="font-family: " />
&nbsp;&nbsp;&nbsp;&nbsp;The Execute() method now is used to actually executing your query expression. This explicit entry point &#8211; instead of just relying on IEnumerator.GetEnumerator() &#8211; allows executing ET&#8217;s which do not necessarily yield sequences of elements. (For example aggregate functions like count or sum.)&nbsp;<img alt="" src="http://www.cnblogs.com/Emoticons/yoyocici/224024437.gif" /><br style="font-family: " />
&nbsp;&nbsp;&nbsp;&nbsp;We finally have our two worlds nicely connected together. The mutability of ET and the deferred execution of IEnumerable combined to a construct that can analyze an arbitrary mutated and extended query at the last possible moment and execute an optimized query against its data source. It&#8217;s not even too hard to implement your own IQueryProvider for your own data source. Maybe I&#8217;ll cover that in a later post. This is really nice work Eric Meijer and his team has done here.<img alt="" src="http://www.cnblogs.com/Emoticons/others/think001.gif" /></span></p>
<p>&nbsp;</p>
<p><span style="font-family: 黑体">&nbsp;&nbsp;&nbsp;&nbsp; <img alt="" src="http://www.cnblogs.com/Emoticons/xd/010.gif" />明白了以两者的区别和概念之后，下面再来以直观的代码方式看看有关于LINQ Set操作几个扩展方法&nbsp;</span><strong></p>
<div class="cnblogs_code" style="width: 766px; height: 1942px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080">&nbsp;1</span>&nbsp;<span style="color: #000000">&nbsp;List</span><span style="color: #000000">&lt;</span><span style="color: #000000">Int32</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;numbers&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;List</span><span style="color: #000000">&lt;</span><span style="color: #000000">Int32</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;{&nbsp;</span><span style="color: #800080">21</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">265</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">236</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">21</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">956</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">456</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">456</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">535</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">236</span><span style="color: #000000">&nbsp;};<br />
</span><span style="color: #008080">&nbsp;2</span>&nbsp;<span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;3</span>&nbsp;<span style="color: #000000">&nbsp;List</span><span style="color: #000000">&lt;</span><span style="color: #000000">Int32</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;numbersTwo&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;List</span><span style="color: #000000">&lt;</span><span style="color: #000000">Int32</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;{&nbsp;</span><span style="color: #800080">21</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">456</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">535</span><span style="color: #000000">,&nbsp;</span><span style="color: #800080">236</span><span style="color: #000000">&nbsp;};<br />
</span><span style="color: #008080">&nbsp;4</span>&nbsp;<span style="color: #000000"><br />
</span><span style="color: #008080">&nbsp;5</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;summary&gt;</span><span style="color: #008000"><br />
</span><span style="color: #008080">&nbsp;6</span>&nbsp;<span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;列出回序列中的非重复元素。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">&nbsp;7</span>&nbsp;<span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;/summary&gt;</span><span style="color: #808080"><br />
</span><span style="color: #008080">&nbsp;8</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Distinct()<br />
</span><span style="color: #008080">&nbsp;9</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
</span><span style="color: #008080">10</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IEnumerable</span><span style="color: #000000">&lt;</span><span style="color: #000000">Int32</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;distinctNumbers&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;numbers.Distinct();<br />
</span><span style="color: #008080">11</span>&nbsp;<span style="color: #000000"><br />
</span><span style="color: #008080">12</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">IQueryable&lt;Int32&gt;&nbsp;distinctNumbers&nbsp;=&nbsp;numbers.AsQueryable().Distinct();</span><span style="color: #008000"><br />
</span><span style="color: #008080">13</span>&nbsp;<span style="color: #000000">&nbsp;<br />
</span><span style="color: #008080">14</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(</span><span style="color: #800000">"</span><span style="color: #800000">Distinct&nbsp;numbers:</span><span style="color: #800000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">15</span>&nbsp;<span style="color: #000000">&nbsp;<br />
</span><span style="color: #008080">16</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">foreach</span><span style="color: #000000">&nbsp;(Int32&nbsp;number&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;distinctNumbers)<br />
</span><span style="color: #008080">17</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
</span><span style="color: #008080">18</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(number);<br />
</span><span style="color: #008080">19</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080">20</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080">21</span>&nbsp;<span style="color: #000000"><br />
</span><span style="color: #008080">22</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;summary&gt;</span><span style="color: #008000"><br />
</span><span style="color: #008080">23</span>&nbsp;<span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;列出的序列只显示在第一个序列中的元素。<br />
</span><span style="color: #008080">24</span>&nbsp;<span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;/summary&gt;</span><span style="color: #808080"><br />
</span><span style="color: #008080">25</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Except()<br />
</span><span style="color: #008080">26</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
</span><span style="color: #008080">27</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IEnumerable</span><span style="color: #000000">&lt;</span><span style="color: #000000">Int32</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;exceptNumbers&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;numbers.Except(numbersTwo);<br />
</span><span style="color: #008080">28</span>&nbsp;<span style="color: #000000"><br />
</span><span style="color: #008080">29</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">IQueryable&lt;Int32&gt;&nbsp;execeptNumbers&nbsp;=&nbsp;numbersTwo.AsQueryable().Except(numbers);</span><span style="color: #008000"><br />
</span><span style="color: #008080">30</span>&nbsp;<span style="color: #000000">&nbsp;<br />
</span><span style="color: #008080">31</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(</span><span style="color: #800000">"</span><span style="color: #800000">Except&nbsp;numbers:</span><span style="color: #800000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">32</span>&nbsp;<span style="color: #000000"><br />
</span><span style="color: #008080">33</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">foreach</span><span style="color: #000000">&nbsp;(Int32&nbsp;number&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;exceptNumbers)<br />
</span><span style="color: #008080">34</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #008080">35</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(number);<br />
</span><span style="color: #008080">36</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080">37</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080">38</span>&nbsp;<span style="color: #000000"><br />
</span><span style="color: #008080">39</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;summary&gt;</span><span style="color: #008000"><br />
</span><span style="color: #008080">40</span>&nbsp;<span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;进行比较生成两个序列的交集。<br />
</span><span style="color: #008080">41</span>&nbsp;<span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;/summary&gt;</span><span style="color: #808080"><br />
</span><span style="color: #008080">42</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Intersect()<br />
</span><span style="color: #008080">43</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
</span><span style="color: #008080">44</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IEnumerable</span><span style="color: #000000">&lt;</span><span style="color: #000000">Int32</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;intersectNumbers&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;numbers.Intersect(numbersTwo);<br />
</span><span style="color: #008080">45</span>&nbsp;<span style="color: #000000"><br />
</span><span style="color: #008080">46</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">IQueryable&lt;Int32&gt;&nbsp;intersectNumbers&nbsp;=&nbsp;numbersTwo.AsQueryable&lt;Int32&gt;()</span><span style="color: #008000"><br />
</span><span style="color: #008080">47</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.Intersect(numbers);<br />
</span><span style="color: #008080">48</span>&nbsp;<span style="color: #000000"><br />
</span><span style="color: #008080">49</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(</span><span style="color: #800000">"</span><span style="color: #800000">Intersect&nbsp;numbers:</span><span style="color: #800000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">50</span>&nbsp;<span style="color: #000000"><br />
</span><span style="color: #008080">51</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">foreach</span><span style="color: #000000">&nbsp;(Int32&nbsp;number&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;intersectNumbers)<br />
</span><span style="color: #008080">52</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
</span><span style="color: #008080">53</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(number);<br />
</span><span style="color: #008080">54</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080">55</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080">56</span>&nbsp;<span style="color: #000000"><br />
</span><span style="color: #008080">57</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;summary&gt;</span><span style="color: #008000"><br />
</span><span style="color: #008080">58</span>&nbsp;<span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;执行的联合操作。返回的序列包含两个输入序列的唯一的元素。<br />
</span><span style="color: #008080">59</span>&nbsp;<span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;/summary&gt;</span><span style="color: #808080"><br />
</span><span style="color: #008080">60</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Union()<br />
</span><span style="color: #008080">61</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
</span><span style="color: #008080">62</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IEnumerable</span><span style="color: #000000">&lt;</span><span style="color: #000000">Int32</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;unionNumbers&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;numbers.Union(numbersTwo);<br />
</span><span style="color: #008080">63</span>&nbsp;<span style="color: #000000"><br />
</span><span style="color: #008080">64</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">IQueryable&lt;Int32&gt;&nbsp;unionNumbers&nbsp;=&nbsp;numbersTwo.AsQueryable().Union(numbers);</span><span style="color: #008000"><br />
</span><span style="color: #008080">65</span>&nbsp;<span style="color: #000000">&nbsp;<br />
</span><span style="color: #008080">66</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(</span><span style="color: #800000">"</span><span style="color: #800000">Union&nbsp;numbers:</span><span style="color: #800000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">67</span>&nbsp;<span style="color: #000000">&nbsp;<br />
</span><span style="color: #008080">68</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">foreach</span><span style="color: #000000">&nbsp;(Int32&nbsp;number&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;unionNumbers)<br />
</span><span style="color: #008080">69</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
</span><span style="color: #008080">70</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(number);<br />
</span><span style="color: #008080">71</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080">72</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080">73</span>&nbsp;<span style="color: #000000">&nbsp;<br />
</span><span style="color: #008080">74</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;summary&gt;</span><span style="color: #008000"><br />
</span><span style="color: #008080">75</span>&nbsp;<span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;连接两个序列。<br />
</span><span style="color: #008080">76</span>&nbsp;<span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">///</span><span style="color: #008000">&nbsp;</span><span style="color: #808080">&lt;/summary&gt;</span><span style="color: #808080"><br />
</span><span style="color: #008080">77</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;Concat()<br />
</span><span style="color: #008080">78</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
</span><span style="color: #008080">79</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IEnumerable</span><span style="color: #000000">&lt;</span><span style="color: #000000">Int32</span><span style="color: #000000">&gt;</span><span style="color: #000000">&nbsp;concatNumbers&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;numbers.Concat(numbersTwo);<br />
</span><span style="color: #008080">80</span>&nbsp;<span style="color: #000000"><br />
</span><span style="color: #008080">81</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">IQueryable&lt;Int32&gt;&nbsp;concatNumbers&nbsp;=&nbsp;numbersTwo.AsQueryable().Concat(numbers);</span><span style="color: #008000"><br />
</span><span style="color: #008080">82</span>&nbsp;<span style="color: #000000">&nbsp;<br />
</span><span style="color: #008080">83</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(</span><span style="color: #800000">"</span><span style="color: #800000">Concat&nbsp;numbers:</span><span style="color: #800000">"</span><span style="color: #000000">);<br />
</span><span style="color: #008080">84</span>&nbsp;<span style="color: #000000"><br />
</span><span style="color: #008080">85</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">foreach</span><span style="color: #000000">&nbsp;(Int32&nbsp;number&nbsp;</span><span style="color: #0000ff">in</span><span style="color: #000000">&nbsp;concatNumbers)<br />
</span><span style="color: #008080">86</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
</span><span style="color: #008080">87</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(number);<br />
</span><span style="color: #008080">88</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
</span><span style="color: #008080">89</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></div>
<p></strong>&nbsp;</p>
<p><span style="font-family: Lucida Console"><span style="font-family: Lucida Console">LINQ Coding 目录<img alt="" src="http://www.cnblogs.com/Emoticons/baimantou/223332344.gif" /></span></span></p>
<p><a title="More Linq Coding " style="filter: ; cursor: text; background-color: #ffff99; text-align: center" href="http://www.cnblogs.com/RuiLei/category/91191.html">More Linq Coding</a></p>
<img src ="http://www.cnblogs.com/RuiLei/aggbug/1307556.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43782/" target="_blank">[新闻]分析:百度的三大危机</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>WebService Software Factory 设计草图</title><link>http://www.cnblogs.com/RuiLei/archive/2008/10/05/1304160.html</link><dc:creator>BrianLei</dc:creator><author>BrianLei</author><pubDate>Sun, 05 Oct 2008 04:49:00 GMT</pubDate><guid>http://www.cnblogs.com/RuiLei/archive/2008/10/05/1304160.html</guid><wfw:comment>http://www.cnblogs.com/RuiLei/comments/1304160.html</wfw:comment><comments>http://www.cnblogs.com/RuiLei/archive/2008/10/05/1304160.html#Feedback</comments><slash:comments>15</slash:comments><wfw:commentRss>http://www.cnblogs.com/RuiLei/comments/commentRss/1304160.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/RuiLei/services/trackbacks/1304160.html</trackback:ping><description><![CDATA[<p>以下是根据WSSF设计理念，按现公司的业务需求设计的接口项目拟稿，实现细分。仅供参考。（WSSF---ASMX版）</p>
<p><strong>建议用1680*1050分辩浏览</strong></p>
<p><a href="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/WebServiceSoftwareFactory_B3DC/image_2.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="551" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/WebServiceSoftwareFactory_B3DC/image_thumb.png" width="619" border="0" /></a> <a href="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/WebServiceSoftwareFactory_B3DC/image_4.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="553" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/WebServiceSoftwareFactory_B3DC/image_thumb_1.png" width="254" border="0" /></a> </p>
<p><a href="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/WebServiceSoftwareFactory_B3DC/image_6.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="1199" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/WebServiceSoftwareFactory_B3DC/image_thumb_2.png" width="828" border="0" /></a> </p>
<p><a href="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/WebServiceSoftwareFactory_B3DC/image_8.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="304" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/WebServiceSoftwareFactory_B3DC/image_thumb_3.png" width="448" border="0" /></a> </p>
<p><a href="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/WebServiceSoftwareFactory_B3DC/image_10.png"><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="275" alt="image" src="http://www.cnblogs.com/images/cnblogs_com/RuiLei/WindowsLiveWriter/WebServiceSoftwareFactory_B3DC/image_thumb_4.png" width="670" border="0" /></a></p>
<img src ="http://www.cnblogs.com/RuiLei/aggbug/1304160.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43781/" target="_blank">[新闻]微软：学校应接受学生的数字生活方式</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>Linq Coding -- Part Eight (Equals Topic)  </title><link>http://www.cnblogs.com/RuiLei/archive/2008/08/20/1272555.html</link><dc:creator>BrianLei</dc:creator><author>BrianLei</author><pubDate>Wed, 20 Aug 2008 12:28:00 GMT</pubDate><guid>http://www.cnblogs.com/RuiLei/archive/2008/08/20/1272555.html</guid><wfw:comment>http://www.cnblogs.com/RuiLei/comments/1272555.html</wfw:comment><comments>http://www.cnblogs.com/RuiLei/archive/2008/08/20/1272555.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/RuiLei/comments/commentRss/1272555.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/RuiLei/services/trackbacks/1272555.html</trackback:ping><description><![CDATA[摘要: &nbsp;&nbsp;<a href='http://www.cnblogs.com/RuiLei/archive/2008/08/20/1272555.html'>阅读全文</a><img src ="http://www.cnblogs.com/RuiLei/aggbug/1272555.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/43780/" target="_blank">[新闻]谷歌节衣缩食迎接经济寒冬</a><br/><a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻频道</a>&nbsp;<a href="http://space.cnblogs.com/group.htm" target="_blank">小组</a>&nbsp;<a href="http://space.cnblogs.com/q" target="_blank">博问</a>&nbsp;<a href="http://wz.cnblogs.com/" target="_blank">网摘</a>&nbsp;<a href="http://space.cnblogs.com/ing" target="_blank">闪存</a>]]></description></item><item><title>Linq Coding -- Part Seven (Join之左外部联接、DefaultIfEmpty、GroupJoin)</title><link>http://www.cnblogs.com/RuiLei/archive/2008/08/19/1271758.html</link><dc:creator>BrianLei</dc:creator><author>BrianLei</author><pubDate>Tue, 19 Aug 2008 14:49:00 GMT</pubDate><guid>http://www.cnblogs.com/RuiLei/archive/2008/08/19/1271758.html</guid><wfw:comment>http://www.cnblogs.com/RuiLei/comments/1271758.html</wfw:comment><comments>http://www.cnblogs.com/RuiLei/archive/2008/08/19/1271758.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/RuiLei/comments/commentRss/1271758.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/RuiLei/services/trackbacks/1271758.html</trackback:ping><description><![CDATA[<p><font face="微软雅黑"><span style="font-family: 微软雅黑"><font style="font-family: " face="微软雅黑">Join 子句有三种最常见的联接类型：<a style="font-family: " href="http://www.cnblogs.com/RuiLei/archive/2008/03/04/1089896.html" target="_blank">内部联接</a>，<a style="font-family: " href="http://www.cnblogs.com/RuiLei/archive/2008/03/06/1093307.html" target="_blank">分组联接</a>，左外部联接<br style="font-family: " />
<strong style="font-family: ">本次介绍：左外部联接，DefaultIfEmpty, GroupJoin</strong></font><font style="font-family: "><strong style="font-family: "><br style="font-family: " />
</strong></font>&nbsp;&nbsp;&nbsp;&nbsp;<strong style="font-family: ">左外部联接</strong>：就是返回第一个集合的每个元素，而无论该元素在第二个集合中是否具有相关元素。可以使用 LINQ，通过对分组联接的</span></font></p>
<p><font face="微软雅黑"><span style="font-family: 微软雅黑">&nbsp;&nbsp;&nbsp; 结果调用 DefaultIfEmpty 来执行左外部联接。</span></font></p>
<p>&nbsp;</p>
<p><span style="font-family: Lucida Console">class Person<br />
{<br />
&nbsp;&nbsp;&nbsp; public string FirstName { get; set; }<br />
&nbsp;&nbsp;&nbsp; public string LastName { get; set; }<br />
}</span></p>
<p>&nbsp;</p>
<p><span style="font-family: Lucida Console">class Pet<br />
{<br />
&nbsp;&nbsp;&nbsp; public string Name { get; set; }<br />
&nbsp;&nbsp;&nbsp; public Person Owner { get; set; }<br />
}</span></p>
<p>&nbsp;</p>
<p><span style="font-family: Lucida Console">public&nbsp;void LeftOuterJoinExample()<br />
{<br />
&nbsp;&nbsp;&nbsp; Person magnus = new Person { FirstName = "Magnus", LastName = "Hedlund" };<br />
&nbsp;&nbsp;&nbsp; Person terry = new Person { FirstName = "Terry", LastName = "Adams" };<br />
&nbsp;&nbsp;&nbsp; Person charlotte = new Person { FirstName = "Charlotte", LastName = "Weiss" };<br />
&nbsp;&nbsp;&nbsp; Person arlene = new Person { FirstName = "Arlene", LastName = "Huff" };</span></p>
<p><span style="font-family: Lucida Console">&nbsp;</span></p>
<p><span style="font-family: Lucida Console">&nbsp;&nbsp;&nbsp; Pet barley = new Pet { Name = "Barley", Owner = terry };<br />
&nbsp;&nbsp;&nbsp; Pet boots = new Pet { Name = "Boots", Owner = terry };<br />
&nbsp;&nbsp;&nbsp; Pet whiskers = new Pet { Name = "Whiskers", Owner = charlotte };<br />
&nbsp;&nbsp;&nbsp; Pet bluemoon = new Pet { Name = "Blue Moon", Owner = terry };<br />
&nbsp;&nbsp;&nbsp; Pet daisy = new Pet { Name = "Daisy", Owner = magnus };</span></p>
<p><span style="font-family: Lucida Console">&nbsp;</span></p>
<p><span style="font-family: Lucida Console">&nbsp;&nbsp;&nbsp; // Create two lists.<br />
&nbsp;&nbsp;&nbsp; List&lt;Person&gt; 