teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

訂正

2020/12/24 02:28

投稿

退会済みユーザー
answer CHANGED
@@ -63,7 +63,7 @@
63
63
 
64
64
  ![イメージ説明](b7729fbf9d4f72b63e6c9b9f3e92ccdf.jpeg)
65
65
 
66
- var innnerjoin = ... のコードで取得した innnerjoin の中身を書き換えるということのようですので、Linq で GroupBy を使ってというのはかえって面倒な気がします。
66
+ ~~var innnerjoin = ... のコードで取得した innnerjoin の中身を書き換えるということのようですので、Linq で GroupBy を使ってというのはかえって面倒な気がします。~~ 下の追記を書く前はそういう気がしたのですが、面倒ということはなかったです。分かり難いとは思いますが。
67
67
 
68
68
  **【追記】**
69
69
 

2

追記

2020/12/24 02:28

投稿

退会済みユーザー
answer CHANGED
@@ -67,7 +67,7 @@
67
67
 
68
68
  **【追記】**
69
69
 
70
- GroupBy を使ったコードも追記しておきます。
70
+ GroupBy を使ったコードも追記しておきます。結局ループを回して処置するのですが。
71
71
 
72
72
  ```
73
73
  Console.WriteLine("=======================================");

1

追記

2020/12/24 02:06

投稿

退会済みユーザー
answer CHANGED
@@ -63,4 +63,48 @@
63
63
 
64
64
  ![イメージ説明](b7729fbf9d4f72b63e6c9b9f3e92ccdf.jpeg)
65
65
 
66
- var innnerjoin = ... のコードで取得した innnerjoin の**中身を書き換える**ということのようですので、Linq で GroupBy を使ってというのはかえって面倒な気がします。
66
+ var innnerjoin = ... のコードで取得した innnerjoin の中身を書き換えるということのようですので、Linq で GroupBy を使ってというのはかえって面倒な気がします。
67
+
68
+ **【追記】**
69
+
70
+ GroupBy を使ったコードも追記しておきます。
71
+
72
+ ```
73
+ Console.WriteLine("=======================================");
74
+
75
+ List<ResultDT> innerjoin2 = new List<ResultDT>
76
+ {
77
+ new ResultDT { No = 1, 名前 = "satou", 枝番号 = 1 },
78
+ new ResultDT { No = 2, 名前 = "satou", 枝番号 = 1 },
79
+ new ResultDT { No = 3, 名前 = "kagaya", 枝番号 = 1 },
80
+ new ResultDT { No = 4, 名前 = "gotou", 枝番号 = 1 },
81
+ new ResultDT { No = 5, 名前 = "gotou", 枝番号 = 1 },
82
+ new ResultDT { No = 6, 名前 = "gotou", 枝番号 = 1 }
83
+ };
84
+
85
+ foreach (ResultDT result in innerjoin2)
86
+ {
87
+ Console.WriteLine($"No: {result.No}, 名前: {result.名前}, 枝番号: {result.枝番号}");
88
+ }
89
+
90
+ Console.WriteLine("-----------------------------------");
91
+
92
+ IEnumerable<IGrouping<string, ResultDT>> num = innerjoin2.GroupBy(r => r.名前).Where(g => g.Count() > 1);
93
+ foreach (IGrouping<string, ResultDT> item in num)
94
+ {
95
+ int i = 1;
96
+ foreach (ResultDT result in item)
97
+ {
98
+ result.枝番号 = i++;
99
+ }
100
+ }
101
+
102
+ foreach (ResultDT result in innerjoin2)
103
+ {
104
+ Console.WriteLine($"No: {result.No}, 名前: {result.名前}, 枝番号: {result.枝番号}");
105
+ }
106
+ ```
107
+ 結果は同じです。以下の画像の ========== の下がそれです。
108
+
109
+
110
+ ![イメージ説明](3db940da3ea30f633bd78a032122b656.jpeg)