C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.40788 の関連記事表示

<< 0 >>
■40788  データセットの重複データ検出について
□投稿者/ 初心者 -(2009/09/03(Thu) 09:19:14)

    分類:[C#] 

    データセットから指定するカラムの重複データ検出したいですが、
    やり方がよくわかりません。
    皆さんご指導をして頂けますでしょうか。
親記事 /過去ログ70より / 関連記事表示
削除チェック/

■40790  Re[1]: データセットの重複データ検出について
□投稿者/ オショウ -(2009/09/03(Thu) 10:16:30)
    No40788 (初心者 さん) に返信
    > データセットから指定するカラムの重複データ検出したいですが、
    > やり方がよくわかりません。
    > 皆さんご指導をして頂けますでしょうか。

      私は使ったことないのですが・・・
      VS2008ならば

      LINQ to DataSet

      http://msdn.microsoft.com/ja-jp/library/bb386977.aspx?ppud=4

      こういう方法もあります。

    以上。参考まで
記事No.40788 のレス /過去ログ70より / 関連記事表示
削除チェック/

■40816  Re[2]: データセットの重複データ検出について
□投稿者/ やじゅ -(2009/09/03(Thu) 20:09:46)
>
記事No.40788 のレス /過去ログ70より / 関連記事表示
削除チェック/

■40823  Re[1]: データセットの重複データ検出について
□投稿者/ もりお -(2009/09/03(Thu) 23:12:38)
    No40788 (初心者 さん) に返信
    
    重複と聞いてハッシュテーブルが思い浮かびました。
    
    static void Main(string[] args)
    {
        IDictionary<string, IList<DataRow>> list = getRepetition(getData(), new int[] { 1 });
        foreach (string key in list.Keys)
        {
            IList<DataRow> rows = list[key];
            foreach (DataRow row in rows)
            {
                Console.WriteLine("key:{0} count:{1} id:{2} name:{3} age:{4}",
                    key, rows.Count, row[0], row[1], row[2]);
            }
        }
    }
    
    static IDictionary<string, IList<DataRow>> getRepetition(DataTable table, int[] keyIndexes)
    {
        IDictionary<string, IList<DataRow>> dic =
            new SortedList<string, IList<DataRow>>();
        foreach (DataRow row in table.Rows)
        {
            string key = getKey(row, keyIndexes);
            if (!dic.ContainsKey(key))
            {
                dic.Add(key, new List<DataRow>());
            }
            dic[key].Add(row);
        }
        return dic;
    }
    
    static string getKey(DataRow row, int[] indexes)
    {
        string key = "";
        foreach (int index in indexes)
        {
            key += row[index].ToString();
        }
        return key;
    }
    
    static DataTable getData()
    {
        DataTable table = new DataTable("Member");
        table.Columns.Add(new DataColumn("id", typeof(int)));
        table.Columns.Add(new DataColumn("name", typeof(string)));
        table.Columns.Add(new DataColumn("age", typeof(int)));
        table.Rows.Add(1, "もりお", 30);
        table.Rows.Add(2, "もりお", 40);
        table.Rows.Add(3, "まゆみ", 30);
        return table;
    }
    
記事No.40788 のレス /過去ログ70より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -