質問編集履歴

6

追記の修正

2018/05/15 04:18

投稿

Anon_
Anon_

スコア334

test CHANGED
File without changes
test CHANGED
@@ -148,6 +148,8 @@
148
148
 
149
149
 
150
150
 
151
+ ![イメージ説明](a2ee2eba9bd46899d92d8566f9b5814a.png)
152
+
151
153
 
152
154
 
153
155
  ```ここに言語を入力

5

追記しました。

2018/05/15 04:18

投稿

Anon_
Anon_

スコア334

test CHANGED
File without changes
test CHANGED
@@ -131,3 +131,113 @@
131
131
  追記
132
132
 
133
133
  ![イメージ説明](aa058aab89e4dc25d17943a8f3d025c9.png)
134
+
135
+
136
+
137
+
138
+
139
+
140
+
141
+ 追記2
142
+
143
+ 色々助言をいただいて下記コードに書き直しました。
144
+
145
+ しかしまだ、下記のエラーがでてしまいます。
146
+
147
+ fruit_listはコンストラクタでセットしているはずなのですがなぜエラーがでてしまうのでしょうか。
148
+
149
+
150
+
151
+
152
+
153
+ ```ここに言語を入力
154
+
155
+ public class TextData2
156
+
157
+ {
158
+
159
+ public string Page { get; set; }
160
+
161
+
162
+
163
+ public List<Fruit> fruit_list;
164
+
165
+
166
+
167
+ public TextData2()
168
+
169
+ {
170
+
171
+ string page = Page;
172
+
173
+ switch (page)
174
+
175
+ {
176
+
177
+ case "fruit":
178
+
179
+ fruit_list = new List<Fruit>()
180
+
181
+ {
182
+
183
+ new Fruit(){Lang = "ja", Apple = "りんご", Banana = "ばなな", Grape="ぶどう"},
184
+
185
+ new Fruit(){Lang = "en", Apple = "apple", Banana = "banana", Grape="grape"},
186
+
187
+ };
188
+
189
+ break;
190
+
191
+ }
192
+
193
+ }
194
+
195
+
196
+
197
+ public dynamic GetList(string lang)
198
+
199
+ {
200
+
201
+ dynamic data = new List<string>();
202
+
203
+ string page = Page;
204
+
205
+ switch (page)
206
+
207
+ {
208
+
209
+ case "fruit":
210
+
211
+ data = (from f in fruit_list
212
+
213
+ where f.Lang == lang
214
+
215
+ select f).FirstOrDefault();
216
+
217
+ break;
218
+
219
+
220
+
221
+ }
222
+
223
+ return data;
224
+
225
+ }
226
+
227
+ }
228
+
229
+ ```
230
+
231
+
232
+
233
+ 取得側のコード
234
+
235
+ ```ここに言語を入力
236
+
237
+ var textdata2 = new TextData2() { Page = "fruit"};
238
+
239
+ var fruit_text = textdata2.GetList(lang);
240
+
241
+
242
+
243
+ ```

4

switchコードの追記

2018/05/15 04:17

投稿

Anon_
Anon_

スコア334

test CHANGED
File without changes
test CHANGED
@@ -123,3 +123,11 @@
123
123
  var fruit_list = textdata2.GetList(lang, "fruit");
124
124
 
125
125
  ```
126
+
127
+
128
+
129
+
130
+
131
+ 追記
132
+
133
+ ![イメージ説明](aa058aab89e4dc25d17943a8f3d025c9.png)

3

コード修正

2018/05/15 02:24

投稿

Anon_
Anon_

スコア334

test CHANGED
File without changes
test CHANGED
@@ -74,13 +74,15 @@
74
74
 
75
75
  {
76
76
 
77
+      dynamic data;
78
+
77
79
  switch (page)
78
80
 
79
81
  {
80
82
 
81
83
  case "fruit":
82
84
 
83
- var data = (from l in fruit_list
85
+ data = (from l in fruit_list
84
86
 
85
87
  where l.lang == lang
86
88
 

2

コードの修正

2018/05/15 00:39

投稿

Anon_
Anon_

スコア334

test CHANGED
File without changes
test CHANGED
@@ -39,6 +39,8 @@
39
39
  public void Main(string page)
40
40
 
41
41
  {
42
+
43
+     dynamic data;
42
44
 
43
45
  switch (page)
44
46
 

1

内容の修正

2018/05/15 00:37

投稿

Anon_
Anon_

スコア334

test CHANGED
File without changes
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  実際にはfruit以外のcaseも設定しますがここでは省いています。
4
4
 
5
-
5
+ また、GetList()では引数によって結果的にどの型のデータがはいるか明確でないので、このようなメソッドを作ること自体がおかしいでしょうか。
6
6
 
7
7
 
8
8