私は次のようなデータテーブルを持っています。C#のデータテーブルの列の値に影響する
Name Val ID
--------------
Raja 0 101
---------------
Ram 0 102
---------------
Ray 0 103
---------------
Raja 0 104
---------------
私は私のDataTableのラジャ名はので、私はラジャ(2)に名前を変更したい第二の時間を繰り返しagain.In同じ名前が繰り返された場合、私のデータテーブルの列に影響を与えるようにしたいです。
O/P:
Name Val ID
--------------
Raja 0 101
---------------
Ram 0 102
---------------
Ray 0 103
---------------
Raja(2) 0 104
---------------
これを取得するために私を導いてください。
ここDataTable table = new DataTable();
table.Columns.Add("Name", typeof(string));
table.Columns.Add("Item", typeof(string));
table.Columns.Add("Qty", typeof(string));
table.Rows.Add("AAA", "Indocin", "David");
table.Rows.Add("XXX", "Enebrel", "Sam");
table.Rows.Add("AAA", "Hydralazine", "Christoff");
table.Rows.Add("CCC", "Combivent", "Janet");
table.Rows.Add("AAA", "Dilantin", "Melanie");
// Query with Linq
var newNames = table.AsEnumerable()
.Select((row, rowIndex) => new { rowIndex, index }) // storing row and index of it in anonymous type
.GroupBy(x => x.row.Field<string>("Name")) // group by Name
.Where(g => g.Count() > 1) // take only duplicates
.SelectMany(g => g // select all rows but first of duplicates
.Where(x => x.rowIndex > 0)
/*Error*/ .Select((x, dupIndex) => new { x.rowIndex, newName = $"{g.Key}({dupIndex + 1})" }));
foreach(var x in newNames)
table.Rows[x.index].SetField("Name", x.newName);
/***********/
私のコード..
[so]は無料コード作成サービスではありません。 **あなた自身でコードを書くことを試みることが期待されます**。 [もっと研究をして](http://meta.stackoverflow.com/questions/261592)問題がある場合は**あなたが試したことを投稿することができます** **動作していないことの明確な説明**を提供し、** [mcve] **を提供します。私は良い質問と[完璧な質問]を読むことをお勧めします(http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question/)。また、[ツアー]も必ず行ってください。 – Igor