<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN" "http://my.netscape.com/publish/formats/rss-0.91.dtd">
<rss version="0.91">
<channel>
<title>「配列やコレクション内の要素を並び替える」へのコメント</title>
<link>http://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;id=programing%2Ficomparer.html</link>
<description>「配列やコレクション内の要素を並び替える」に投稿されたコメントの一覧</description>
<language>ja</language>
<image>
<url>https://dobon.net/banner/dbs1.gif</url>
<link>http://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;id=programing%2Ficomparer.html</link>
<title>「配列やコレクション内の要素を並び替える」へのコメント</title>
<width>88</width>
<height>31</height>
</image>
<item>
<title>通常のコメント</title>
<link>http://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;id=programing%2Ficomparer.html#13</link>
<description><![CDATA[データ量が極端に多い（100万項目以上）場合は並列 LINQ を使うと高速に並び替えできます。<br><br>// 例1<br>var result = array.AsParallel().OrderBy(x =&gt; x.Item1).ToArray();<br><br>// 例2<br>var result = (from item in array.AsParallel()<br>              orderby item.Item1, item.Item2 descending, item.Item3<br>              select item).ToArray();<br><br>データ量がそれほど多くない場合は通常の LINQ や Array.Sort を使った方が速いので、使う場合はデータ量に応じて処理を分岐させた方が良いです。<br><br>if (array.Length &gt;= 1_000_000)<br>{<br>    // 並列処理<br>}<br>else<br>{<br>    // 通常処理<br>}]]></description>
</item>
<item>
<title>通常のコメント</title>
<link>http://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=programing%2Ficomparer.html#12</link>
<description><![CDATA[LINQによる構造体のソートの簡潔さに感動です。ありがとうございます。<br>好きな要素の値で，ものの数行で並び替えられるのは感動です。]]></description>
</item>
<item>
<title>通常のコメント</title>
<link>http://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=programing%2Ficomparer.html#11</link>
<description><![CDATA[&gt; クラスをラムダ式で並べ替える以下の記述を追加して頂けると助かります。<br>&gt; <br>&gt; 例）<br>&gt; lst.Sort((a, b) =&gt; a.売上日 - b.売上日);<br>&gt;<br>&gt; lst.Sort((a, b) =&gt;<br>&gt; {<br>&gt; if (a.売上日 == 0 &amp;&amp; b.売上日 == 0) return 0;<br>&gt; if (a.売上日 == 0) return 1; //0は最後<br>&gt; if (b.売上日 == 0) return -1; //0は最後<br>&gt; return a.売上日 - b.売上日;<br>&gt; });<br><br>1番目の例は、Array.Sortを使った例ですが、すでにほぼ同じものがあります。2番目の例ですが、この記事では並び替えの方法を紹介することが目的ですので、できるだけサンプルは簡単なものにしたいという気持ちがあります。<br><br>&gt; ＞Return Me.Compare(DirectCast(x, String), DirectCast(y, String))<br>が正しいと思われます。<br><br>修正しました。ご報告ありがとうございました。]]></description>
</item>
<item>
<title>通常のコメント</title>
<link>http://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=programing%2Ficomparer.html#10</link>
<description><![CDATA[いつも参考にさせて頂いております。<br><br>一点誤記を報告させて頂きます。<br>＞IComparer&lt;T&gt;ジェネリックインターフェイスを実装する<br>の、VBコードにある<br>＞Return Me.Compare(DirectCast(x, String), DirectCast(y, String).Length)<br>は、<br>＞Return Me.Compare(DirectCast(x, String), DirectCast(y, String))<br>が正しいと思われます。<br><br>宜しくお願い致します。]]></description>
</item>
<item>
<title>通常のコメント</title>
<link>http://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=programing%2Ficomparer.html#9</link>
<description><![CDATA[大変役に立つ情報が多く、いつも利用させていただいています。<br>ただ、このソートについては、いつ見ても解決に時間がかかってしまっています。<br>そのため、クラスをラムダ式で並べ替える以下の記述を追加して頂けると助かります。<br><br>例）<br>lst.Sort((a, b) =&gt; a.売上日 - b.売上日);<br><br>lst.Sort((a, b) =&gt; <br>{<br>    if (a.売上日 == 0 &amp;&amp; b.売上日 == 0) return 0;<br>    if (a.売上日 == 0) return 1;			//0は最後<br>    if (b.売上日 == 0) return -1;		//0は最後<br>    return a.売上日 - b.売上日;<br>});<br><br>よろしくお願いいたします。]]></description>
</item>
<item>
<title>通常のコメント</title>
<link>http://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=programing%2Ficomparer.html#8</link>
<description><![CDATA[&gt; array.sortだけでなく、array.reverseも載せていただくと助かります。<br><br>Array.Reverseについて、以下のページで紹介させていただきました。ご意見、ありがとうございました。<br><br>http://dobon.net/vb/dotnet/programing/arrayreverse.html]]></description>
</item>
<item>
<title>通常のコメント</title>
<link>http://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=programing%2Ficomparer.html#7</link>
<description><![CDATA[&gt; 2015年10月15日 02:35:23<br>「降順」と書いたのは、Array.sortは「昇順」でソートされていると思ったので、<br>その反対である「降順」としました。<br>私の認識では、昇順の対義語は降順でした。]]></description>
</item>
<item>
<title>通常のコメント</title>
<link>http://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=programing%2Ficomparer.html#6</link>
<description><![CDATA[&gt; 2015年8月24日 08:00:03<br>細かい事ですが、誤解を生みそうでしたので念のため<br><br>array.reverse は、逆順ですね<br>もしくは、添え字の降順？]]></description>
</item>
<item>
<title>通常のコメント</title>
<link>http://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=programing%2Ficomparer.html#5</link>
<description><![CDATA[いつも参考にさせていただいています。<br>array.sortだけでなく、array.reverseも載せていただくと助かります。<br>降順で並べ替えたいときにどうすればいいかわからなかったためです。]]></description>
</item>
<item>
<title>評価の理由</title>
<link>http://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=programing%2Ficomparer.html#4</link>
<description><![CDATA[評価：良い<br>サンプルが豊富で分かりやすかった]]></description>
</item>
<item>
<title>評価の理由</title>
<link>http://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=programing%2Ficomparer.html#3</link>
<description><![CDATA[評価：良い<br>IComparerインターフェイスのコード例を参考にさせて頂きました。]]></description>
</item>
<item>
<title>評価の理由</title>
<link>http://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=programing%2Ficomparer.html#2</link>
<description><![CDATA[評価：良い<br>Array.Sortの使い方、一番端的で判りやすかった。]]></description>
</item>
<item>
<title>評価の理由</title>
<link>http://dobon.net/cgi-bin/pc/pc.php?mode=v&amp;amp;id=programing%2Ficomparer.html#1</link>
<description><![CDATA[評価：良い<br>ＶＢ初心者です。<br>文字列ソートにて既定のソートではウ、ヴなどが後に続く文字に影響を受ける。この方法で影響を受けなくできました。システムのソートを使用できるので大幅なソート時間の短縮が出来ました。]]></description>
</item>
</channel>
</rss>