質問編集履歴
2
文法の修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -41,5 +41,5 @@
|
|
41
41
|
}
|
42
42
|
```
|
43
43
|
|
44
|
-
|
44
|
+
新規に拡張メソッド作成する方法は使わないようにお願いします。
|
45
45
|
C#のバージョンは6.0です。
|
1
文法の修正
title
CHANGED
File without changes
|
body
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
独自クラスを持つリストが2つあり、2つのリストにあるCDプロパティを比較して
|
2
|
-
CDに一致するNameプロパティを上書きする
|
2
|
+
CDに一致するNameプロパティを上書きする処理をエレガントに書く方法を教えて下さい。
|
3
3
|
|
4
4
|
以下のプログラムではuser3のCDとowner3のCDが初めに一致するためnameプロパティがowner3に書き換えられます。
|
5
5
|
※owner99も一致しますが、CDはユニークな想定なため初めに一致したCDを返す想定です。
|
@@ -23,6 +23,7 @@
|
|
23
23
|
new Person(){ CD = 3,Name = "owner99"}
|
24
24
|
};
|
25
25
|
|
26
|
+
|
26
27
|
foreach(var userPerson in userPersonList){
|
27
28
|
foreach(var ownerPerson in ownerPersonList){
|
28
29
|
if(userPerson.CD == ownerPerson.CD){
|
@@ -33,7 +34,7 @@
|
|
33
34
|
}
|
34
35
|
```
|
35
36
|
|
36
|
-
|
37
|
+
以下は試してみた代入部分のLINQ構文です。
|
37
38
|
```ここに言語を入力
|
38
39
|
foreach(var result in userPersonList.Where(x => ownerPersonList.Select(y => y.CD).Contains(x.CD))){
|
39
40
|
result.Name = ownerPersonList.Where(x => x.CD == result.CD).Select(x => x.Name).FirstOrDefault();
|
@@ -41,5 +42,4 @@
|
|
41
42
|
```
|
42
43
|
|
43
44
|
自作での拡張メソッドは共同作業のため禁止されております。
|
44
|
-
C#のバージョンは6.0です。
|
45
|
+
C#のバージョンは6.0です。
|
45
|
-
上記処理をLINQを用いて一文で処理したいのですが効率的な方法はありますでしょうか?
|