1. ホーム
  2. c#

[解決済み] リストから空の文字列を削除し、リストから重複する値を削除する方法

2023-05-20 23:27:11

質問

テーブルから取得したカラムの値のリストがあるとします。空文字列や重複する値を削除するにはどうしたらよいでしょうか。次のコードを参照してください。

List<string> dtList = dtReportsList.AsEnumerable().Select(dr => dr.Field<string>("column1")).ToList();

これは私が今コード化したものですが、Amiramのコードの方がずっとエレガントなので、私はそれを選択します。

DataTable dtReportsList = someclass.GetReportsList();

        if (dtReportsList.Rows.Count > 0)
       { 
           List<string> dtList = dtReportsList.AsEnumerable().Select(dr => dr.Field<string>("column1")).ToList();
           dtList.RemoveAll(x=>x == "");
           dtList = dtList.Distinct().ToList();         

           rcboModule.DataSource = dtList;
           rcboModule.DataBind();               
           rcboModule.Items.Insert(0, new RadComboBoxItem("All", "All"));
       }

どのように解決するのですか?

dtList  = dtList.Where(s => !string.IsNullOrWhiteSpace(s)).Distinct().ToList()

空文字列と空白はnullのようなものだと思っていました。そうでない場合は IsNullOrEmpty (空白を許す)、または s != null