0
私が見た最も近い投稿はthis postでした。
私は、以下の情報を持つデータテーブルがあります。私は、各遺跡の最初のインスタンスのみように、同様の値を持つ列をクリアしたい
ID COL1 COL2 COL3
10 ABC Town Dog
20 AAA Town Dog
30 BBB Town Cat
40 CCC City Cat
50 DDD City Pig
を。フィルタの列には、それが生産することができ、ユーザが入力されています。これまでのところ、私は、作業コードを持って
ID COL1 COL2 COL3 ID COL1 COL2 COL3
10 ABC Town Dog 10 ABC Town Dog
20 AAA Dog 20 AAA Town
30 BBB Cat OR 30 BBB Town Cat
40 CCC City Cat 40 CCC City
50 DDD Pig 50 DDD City Pig
が、それはゆっくりと行います。
foreach (string strListVal in lstUniqueString) //contains the unique values
{
foreach (DataRow drTableTraverse in dt.Rows) //match the string vs. all rows
{
if (drTableTraverse[strColumnName].ToString() == strListVal && bClearedFirst == false)
{
bClearedFirst = true; //flag for the first instance
continue; //skip the first instance, then clear the remaining
}
else if (drTableTraverse[strColName].ToString() == strListVal)
{
drTableTraverse[strColumnName] = "";
}
}
}
同じ結果を得るための方法はありますか?もしあれば、linqを使わないで。
のように思えますか? –
はい、正しいです。重複は空の文字列になり、最初のインスタンスはその値を保持します – valmanway