あるDataTable型のdtに列名「左右」があります。
n行の中にランダムで「hoge_右切り」か「hoge_左切り」の文字列が必ず格納されています。
右か左の1文字だけをそれぞれ逆に置換したDataTableを作成したいのですが、LINQではどのように書くのでしょうか?
dt.AsEnumerable() .Where(r => r["左右"].ToString().Contains("右切り")) .Select(r => r["左右"]].ToString().Replace("右", "左")).ToList();
上記のように単純なものを作ってみたのですが、dt内で文字が置換されていませんでした。
DataRow[] changeLeft = ( from rightRow in dt.AsEnumerable() where rightRow["左右"].ToString().Contains("右切り") select rightRow).ToArray(); Array.ForEach<DataRow>(changeLeft, rightRow => dt.Rows.Remove(rightRow)); Array.ForEach<DataRow>(changeLeft, rightRow => dt.Rows.ToString().Replace("左", "右"));
一旦、右切りが含まれている行を抽出して試してみたのですが同様の結果になってしまいました。
このままだと時間だけが過ぎてしまいそうです。
知恵を貸していただけないでしょうか。
お願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2016/10/20 06:51