以下の内容はhttps://tech.guitarrapc.com/entry/2025/01/26/235900より取得しました。


LINQPadのUtil.Difで差分を確認する

C#で配列同士の差分を確認したいときがあります。そんな時LINQPadのUtil.Difを使うと便利でというお話。

配列の差分を確認する

LINQPadはC#をサクッと書いて実行できる軽量なプレイグラウンドです。ずっと前に布教されてからずっと使っています。

さて、LINQPadを用いると配列同士の差分をグラフィカルに確認できます。 例えば次のような配列があるとします。一見すると同じそうですが、これの中でどれかの要素に差分があるのを探すのに便利です。

var a = new[]
{
    "Alice",
    "Brian",
    "Cathy",
    "David",
    "Emily",
    "Frank",
    "Grace",
    "Henry",
    "Irene",
    "Julia"
};
var b = new string[]
{
    "Cathy",
    "David",
    "Brian",
    "Henry",
    "Alice",
    "Emi1y",
    "Grace",
    "Frank",
    "lrene",
    "JuIia"
};

差分確認はUtil.Difを使います。差分をとる配列は順序をそろえておく必要があるので次のように書いてみましょう。

Util.Dif(a.OrderBy(x => x), b.OrderBy(x => x)).Dump();

差分は次のように表示されます。便利ですね。

image

まとめ

Util.DifはLINQPadの便利な機能の1つです。例えば、雑にEmailが書かれたスプレッドシートとマスタ的なもので件数に差分がある時に使えます。50件とか100件あると目で探すのもスプレッドシートで並べるのも面倒ですよね。 雑に使えるLINQPadのユーティリティ関数、ほかにもあるのですが全然使いこなせてないのでまた機会があれば紹介します。




以上の内容はhttps://tech.guitarrapc.com/entry/2025/01/26/235900より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14