1. ホーム
  2. sql

[解決済み] LINQでSELECT UNIQUEを行うにはどうすればよいですか?

2023-01-19 16:16:20

質問

このようなリストがあります。

Red
Red
Brown
Yellow
Green
Green
Brown
Red
Orange

私はLINQでSELECT UNIQUEをしようとしています。

Red
Brown
Yellow
Green
Orange

var uniqueColors = from dbo in database.MainTable
                   where dbo.Property == true
                   select dbo.Color.Name;

これを

var uniqueColors = from dbo in database.MainTable
                   where dbo.Property == true
                   select dbo.Color.Name.Distinct();

を実行しても成功しません。最初の select はすべての色を取得します。では、ユニークな値だけを取得するようにするには、どのように修正すればよいのでしょうか?

このクエリを構造化するためのより良い方法があれば、そのルートに行くのはもっと幸せです。

このクエリを編集して .OrderBy( "column name" ) つまり、色名でアルファベット順なので、nameプロパティ?

というメッセージが出続けています。

使用方法から型引数を推測することができません。明示的に型引数を指定してみてください。

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

この Distinct() は順序を混乱させるので、その後にソートする必要があります。

var uniqueColors = 
               (from dbo in database.MainTable 
                 where dbo.Property == true 
                 select dbo.Color.Name).Distinct().OrderBy(name=>name);