<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" 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/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Sayed Ibrahim Hashimi - MSBuild, Web Deploy (MSDeploy), ASP.NET - CSharp3</title>
    <link>http://sedodream.com/</link>
    <description>MSBuild, C#, Visual Studio and more</description>
    <language>en-us</language>
    <copyright>Sayed Ibrahim Hashimi</copyright>
    <lastBuildDate>Wed, 30 Jul 2008 05:31:15 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>sayed.hashimi@gmail.com</managingEditor>
    <webMaster>sayed.hashimi@gmail.com</webMaster>
    <item>
      <trackback:ping>http://sedodream.com/Trackback.aspx?guid=e915ecf8-2189-416f-8ca1-e1602414c079</trackback:ping>
      <pingback:server>http://sedodream.com/pingback.aspx</pingback:server>
      <pingback:target>http://sedodream.com/PermaLink,guid,e915ecf8-2189-416f-8ca1-e1602414c079.aspx</pingback:target>
      <dc:creator />
      <wfw:comment>http://sedodream.com/CommentView,guid,e915ecf8-2189-416f-8ca1-e1602414c079.aspx</wfw:comment>
      <wfw:commentRss>http://sedodream.com/SyndicationService.asmx/GetEntryCommentsRss?guid=e915ecf8-2189-416f-8ca1-e1602414c079</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
I looked around for an extension method that would just randomize a list. I found
a couple but they either didn't seem to work right or the modified the collection
itself instead of creating a new collection and returning that. So I created one,
it is pretty simple anywayz. The definition for it is shown below. 
</p>
        <p>
          <span style="FONT-SIZE: 10pt; COLOR: #006600; FONT-FAMILY: Courier New">public static
class IListExtensions<br />
{<br />
    public static IList&lt;T&gt; Randomize&lt;T&gt;(this IList&lt;T&gt;
input)<br />
    {<br />
        if (input == null)<br />
        { throw new ArgumentException("input");
}</span>
        </p>
        <p>
          <span style="FONT-SIZE: 10pt; COLOR: #006600; FONT-FAMILY: Courier New">       
var test = (from p in input<br />
                   
select new { Id = rand.Next(), ListObject = p }).OrderBy(t =&gt; t.Id);</span>
        </p>
        <p>
          <span style="FONT-SIZE: 10pt; COLOR: #006600; FONT-FAMILY: Courier New">       
IList&lt;T&gt; randomList = new List&lt;T&gt;();<br />
        foreach (var item in test)<br />
        {<br />
            randomList.Add(item.ListObject);<br />
        }</span>
        </p>
        <p>
          <span style="FONT-SIZE: 10pt; COLOR: #006600; FONT-FAMILY: Courier New">       
return randomList;<br />
    }</span>
        </p>
        <p>
          <span style="FONT-SIZE: 10pt; COLOR: #006600; FONT-FAMILY: Courier New">   
static Random rand = new Random();<br />
}</span>
        </p>
        <p>
From here we use this method just like any other IList method, an example is shown
below. 
</p>
        <p>
          <span style="FONT-SIZE: 10pt; COLOR: #006600; FONT-FAMILY: Courier New">public void
SampleRandomize()<br />
{<br />
    int numElemnets = 10;<br />
    IList&lt;int&gt; numList = new List&lt;int&gt;();<br />
    for (int i = 0; i &lt; numElemnets; i++)<br />
    {<br />
        numList.Add(i);<br />
    }</span>
        </p>
        <p>
          <span style="FONT-SIZE: 10pt; COLOR: #006600; FONT-FAMILY: Courier New">   
IList&lt;int&gt; radnomList = numList.Randomize();</span>
        </p>
        <p>
          <span style="FONT-SIZE: 10pt; COLOR: #006600; FONT-FAMILY: Courier New">   
for (int i = 0; i &lt; randomList.Count; i++)<br />
    {<br />
        System.Diagnostics.Debug.WriteLine(string.Format("i:
{0}", randomList[i]));<br />
    }<br />
}</span>
        </p>
        <p>
I think it's pretty cool how you can create methods that can be soo easily used thanks
to extension methods. 
</p>
        <p>
          <br />
Sayed Ibrahim Hashimi
</p>
      </body>
      <title>IList Randomize Extension Method</title>
      <guid isPermaLink="false">http://sedodream.com/PermaLink,guid,e915ecf8-2189-416f-8ca1-e1602414c079.aspx</guid>
      <link>http://sedodream.com/2008/07/30/IListRandomizeExtensionMethod.aspx</link>
      <pubDate>Wed, 30 Jul 2008 05:31:15 GMT</pubDate>
      <description>&lt;p&gt;
I looked around for an extension method that would just randomize a list. I found
a couple but they either didn't seem to work right or the modified the collection
itself instead of creating a new collection and returning that. So I created one,
it is pretty simple anywayz. The definition for it is shown below. 
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: #006600; FONT-FAMILY: Courier New"&gt;public static
class IListExtensions&lt;br&gt;
{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public static IList&amp;lt;T&amp;gt; Randomize&amp;lt;T&amp;gt;(this IList&amp;lt;T&amp;gt;
input)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (input == null)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { throw new ArgumentException("input");
}&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: #006600; FONT-FAMILY: Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
var test = (from p in input&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
select new { Id = rand.Next(), ListObject = p }).OrderBy(t =&amp;gt; t.Id);&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: #006600; FONT-FAMILY: Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
IList&amp;lt;T&amp;gt; randomList = new List&amp;lt;T&amp;gt;();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; foreach (var item in test)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; randomList.Add(item.ListObject);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: #006600; FONT-FAMILY: Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
return randomList;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: #006600; FONT-FAMILY: Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
static Random rand = new Random();&lt;br&gt;
}&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
From here we use this method just like any other IList method, an example is shown
below. 
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: #006600; FONT-FAMILY: Courier New"&gt;public void
SampleRandomize()&lt;br&gt;
{&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; int numElemnets = 10;&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; IList&amp;lt;int&amp;gt; numList = new List&amp;lt;int&amp;gt;();&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; numElemnets; i++)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; numList.Add(i);&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: #006600; FONT-FAMILY: Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
IList&amp;lt;int&amp;gt; radnomList = numList.Randomize();&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 10pt; COLOR: #006600; FONT-FAMILY: Courier New"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
for (int i = 0; i &amp;lt; randomList.Count; i++)&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.Diagnostics.Debug.WriteLine(string.Format("i:
{0}", randomList[i]));&lt;br&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;
}&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
I think it's pretty cool how you can create methods that can be soo easily used thanks
to extension methods. 
&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;
Sayed Ibrahim Hashimi
&lt;/p&gt;</description>
      <comments>http://sedodream.com/CommentView,guid,e915ecf8-2189-416f-8ca1-e1602414c079.aspx</comments>
      <category>Visual Studio 2008</category>
      <category>CSharp3</category>
    </item>
  </channel>
</rss>