34635


C♯、Asp.net mvc5で、データを取ってきてモデルのクラスに入れて、viewに表示させています。  
プログラムとかあまりわからないのと、私は理解力がないので質問がおかしかったらすみません。  
Linqでデータを取って来たときに、caseでデータが1の時は、「りんご」、2の時は「みかん」とviewで表示出来ると聞いたのですが、どうやるのか分からないので例や参考、やり方など教えて下さい。


CC BY-SA 3.0
2017-05-11T07:58:12.080
34634
2017-05-11T08:17:07.100
23086
question
linq
Linqで取得したデータごとに、任意の文字を表示する方法？


たとえば`int`型の`data`という変数があったとして、`data == 1`かどうかで文字列の値を変えたい場合 **三項演算子** が利用できます。

[code]

    @(data == 1 ? "りんご" : "みかん")
    
[/code]

三項演算子は連続で書けるので、たとえば`data == 2`という条件を追加したい場合は

[code]

    @(data == 1 ? "りんご" : data == 2 ? "みかん" : "その他")
    
[/code]

のように記述できます。

ただこのような処理は複数個所で使われる可能性が高いですし、普通にメソッドを作成して`switch`ステートメントを使うなどしたほうが汎用的だと思います。

たとえば問題の値が`Hoge`エンティティに定義されている場合、

[code]

    namespace WebApplication1.Views // TODO: 適当に変える
    {
        public static class HogeHelper
        {
            public static string GetFruitName(this Hoge entity)
            {
                switch (entity.Data)
                {
                    case 1:
                        return ""りんご;
    
                    // TODO: 省略
    
                    default:
                        return "その他";
                }
            }
        }
    }
    
[/code]

などと定義して、ビューまたは`Views/Web.config`で名前空間を参照すれば.cshtml中で`GetFuitName`拡張メソッドが使用できるようになります。


CC BY-SA 3.0
2017-05-11T08:09:26.447
34635
2017-05-11T08:17:07.100
2017-05-11T08:17:07.100
5750
5750
34634
answer