C#
PR

C#でカンマ区切りの文字列と配列とで差集合を取る

kawa.xxx
記事内に商品プロモーションを含む場合があります

int の配列に対して、カンマ区切りの文字列の中にある数字を除いた差集合を取る方法です。
とっても簡単なことですが、意外とスパっとかけたのでメモ。

書いたコードが以下のとおり。

var a = new int[5] {1,2,3,4,5};
var str = "2,3";
var b = str.Split(',').Select(x => Int32.Parse(x));
a.Except(b).Dump();

3行目は、Split() でカンマで文字列を分割し、その各要素を int に変換して返しています。

5行目の、Except(IEnumerable) は拡張メソッドで、引数の IEnumerable に含まれない要素を返してくれます。

実行結果は以下のとおり。
f:id:kawa_xxx:20160217224119j:plain

軽くハマったところは Select の中の x を int に変換し忘れて型が違うって言われたところ。

Linq便利ー!LINQPad便利ー!

ABOUT ME
kawa.xxx
都内のIT系企業に勤める会社員。自分の備忘録的なアウトプット用の場所で、ボルダリングやガシェッド、セキュリティ、カメラの話題が中心です。
記事URLをコピーしました