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

質問編集履歴

11

修正

2020/12/24 01:06

投稿

AEGIL
AEGIL

スコア7

title CHANGED
File without changes
body CHANGED
@@ -85,11 +85,11 @@
85
85
  追記
86
86
  for(ResultDT item in innnerjoin)
87
87
  {
88
- Console.WriteLine(item.名前);//データ(satou)
88
+ Console.WriteLine(item.名前);//データ(satou) 
89
89
  Console.WriteLine(item.枝番);//データ(1)
90
90
  }
91
91
  **補足説明**
92
- 質問に書いてある「今の状態」 var innnerjoin = ... のコードで取得した innnerjoin の中身が上記の追に記載してあるようにforeach(ResultDT item in innnerjoin){ }のループの状態になります。
92
+ 質問に書いてある「今の状態」 var innnerjoin = ... のコードで取得した innnerjoin の内容が上記の追に記載してあるようにforeach(ResultDT item in innnerjoin){ }のループの状態になります。
93
93
  それをコード内の
94
94
   >> // 対象でグルーピングして、2件以上なら抽出
95
95
  var num =....以降のコードで「最終的にこういうものを表示したい」に記載している枝番号列の状態にしたいと考えています。

10

追加説明

2020/12/24 01:05

投稿

AEGIL
AEGIL

スコア7

title CHANGED
File without changes
body CHANGED
@@ -87,4 +87,9 @@
87
87
  {
88
88
  Console.WriteLine(item.名前);//データ(satou)
89
89
  Console.WriteLine(item.枝番);//データ(1)
90
- }
90
+ }
91
+ **補足説明**
92
+ 質問に書いてある「今の状態」 var innnerjoin = ... のコードで取得した innnerjoin の中身が上記の追加に記載してあるようにforeach(ResultDT item in innnerjoin){ }のループの状態になります。
93
+ それをコード内の
94
+  >> // 対象でグルーピングして、2件以上なら抽出
95
+ var num =....以降のコードで「最終的にこういうものを表示したい」に記載している枝番号列の状態にしたいと考えています。

9

修正

2020/12/24 00:51

投稿

AEGIL
AEGIL

スコア7

title CHANGED
@@ -1,1 +1,1 @@
1
- 枝番号がうまく反映されない
1
+ 結合後の値にグループ化した値を反映させるには
body CHANGED
@@ -12,7 +12,6 @@
12
12
  }
13
13
  public class CsvDT
14
14
  {
15
-
16
15
    //格納先
17
16
  public string name{ get; set; }
18
17
  public int count{ get; set; }

8

内部データ追加

2020/12/23 18:59

投稿

AEGIL
AEGIL

スコア7

title CHANGED
File without changes
body CHANGED
@@ -81,4 +81,11 @@
81
81
  4,gotou,1
82
82
  5,gotou,2
83
83
  6,gotou,3
84
- ```
84
+ ```
85
+
86
+ 追記
87
+ for(ResultDT item in innnerjoin)
88
+ {
89
+ Console.WriteLine(item.名前);//データ(satou)
90
+ Console.WriteLine(item.枝番);//データ(1)
91
+ }

7

修正

2020/12/23 13:25

投稿

AEGIL
AEGIL

スコア7

title CHANGED
File without changes
body CHANGED
@@ -2,11 +2,21 @@
2
2
  この場合ループの処理がうまくいっていないことが原因なのでしょうか?
3
3
  処理がどこでおかしくなっているのか教えていただきたいです。
4
4
  ```c#
5
+
6
+ public class OracleDT //こちら追記
7
+ {
8
+   //格納先
9
+ public string name{ get; set; }
10
+ public int count{ get; set; }
11
+ public string code{ get; set; }
12
+ }
5
13
  public class CsvDT
14
+ {
6
15
 
7
16
    //格納先
8
17
  public string name{ get; set; }
9
- public int count{ get; set; }
18
+ public int count{ get; set; }
19
+ public string code{ get; set; }//書き漏らし追記
10
20
  }
11
21
  public class ResultDT
12
22
  {
@@ -15,6 +25,7 @@
15
25
  public string NO{ get; set; }
16
26
  public string 名前{ get; set; }
17
27
  public int 枝番号{ get; set; }
28
+
18
29
  }
19
30
  ```
20
31
 

6

欲しい結果を記入。

2020/12/23 06:07

投稿

AEGIL
AEGIL

スコア7

title CHANGED
File without changes
body CHANGED
@@ -49,6 +49,18 @@
49
49
  }
50
50
 
51
51
  ```
52
+ **以下追記**
53
+ 今の状態
54
+ ```
55
+ No,名前,枝番
56
+ 1,satou,1
57
+ 2,satou,1
58
+ 3,kagaya,1
59
+ 4,gotou,1
60
+ 5,gotou,1
61
+ 6,gotou,1
62
+ ```
63
+
52
64
  最終的にこういうものを表示したい。
53
65
  ```
54
66
  No,名前,枝番

5

コメント記入

2020/12/23 05:41

投稿

AEGIL
AEGIL

スコア7

title CHANGED
File without changes
body CHANGED
@@ -34,11 +34,11 @@
34
34
  枝番号 = 1,//c.countだと全体に対しての連番になってしまう
35
35
 
36
36
  };
37
-
37
+ // 対象でグルーピングして、2件以上なら抽出
38
38
  var num = innnerjoin.GroupBy(key=>key.名前).Where(over => over.Count()>1);
39
39
  foreach(var data in num)
40
40
  {
41
- //csvDTsが単体(枝番)ではなく全体を見てしまっている。
41
+ // インデックス付与
42
42
  var groupData = csvDTs.Select((g, index) => new {csvDTs = g,index=index});
43
43
  foreach (var sub in groupData)
44
44
  {

4

修正

2020/12/23 05:39

投稿

AEGIL
AEGIL

スコア7

title CHANGED
File without changes
body CHANGED
@@ -31,7 +31,7 @@
31
31
  {
32
32
  NO = i++,
33
33
  名前 = c.Name,
34
- 枝番号 = 1,//c.countだと全体に対しての連番
34
+ 枝番号 = 1,//c.countだと全体に対しての連番になってしまう
35
35
 
36
36
  };
37
37
 
@@ -48,4 +48,14 @@
48
48
 
49
49
  }
50
50
 
51
+ ```
52
+ 最終的にこういうものを表示したい。
53
+ ```
54
+ No,名前,枝番
55
+ 1,satou,1
56
+ 2,satou,2
57
+ 3,kagaya,1
58
+ 4,gotou,1
59
+ 5,gotou,2
60
+ 6,gotou,3
51
61
  ```

3

修正

2020/12/23 05:38

投稿

AEGIL
AEGIL

スコア7

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,6 @@
1
1
  名前の行が一致しているときに枝番にしたいのですが、枝番号の列が1を羅列するだけのものになってしまいます。
2
2
  この場合ループの処理がうまくいっていないことが原因なのでしょうか?
3
- そして、コード内にも記述しているのですがcsvDTsを見てしまっていることが原因なのかc.countというものを書いた際はただの連番になってしまいどう表現したらよいかわかりませんでした。
4
- 解決方法ご教授ねがいたいです。
3
+ 処理どこでおかしくなってるのか教えていだきたいです。
5
4
  ```c#
6
5
  public class CsvDT
7
6
 

2

修正

2020/12/23 04:55

投稿

AEGIL
AEGIL

スコア7

title CHANGED
File without changes
body CHANGED
@@ -13,7 +13,7 @@
13
13
  {
14
14
 
15
15
    //格納先
16
- public string 出席番号{ get; set; }
16
+ public string NO{ get; set; }
17
17
  public string 名前{ get; set; }
18
18
  public int 枝番号{ get; set; }
19
19
  }
@@ -30,7 +30,7 @@
30
30
 
31
31
  select new ResultDT
32
32
  {
33
- 出席番号 = i++,
33
+ NO = i++,
34
34
  名前 = c.Name,
35
35
  枝番号 = 1,//c.countだと全体に対しての連番
36
36
 

1

修正

2020/12/23 04:54

投稿

AEGIL
AEGIL

スコア7

title CHANGED
File without changes
body CHANGED
@@ -1,7 +1,8 @@
1
1
  名前の行が一致しているときに枝番にしたいのですが、枝番号の列が1を羅列するだけのものになってしまいます。
2
2
  この場合ループの処理がうまくいっていないことが原因なのでしょうか?
3
- そして、コード内にも記述しているのですがcsvDTsを見てしまっているで全体を見てしまうのですが内部見るにどうするべきなうか
3
+ そして、コード内にも記述しているのですがcsvDTsを見てしまっていることが原因なのかc.countというのを書いた際ただ連番になってまいど表現したらよいわかりませんでした。
4
+ 解決方法ご教授ねがいたいです。
4
- ```
5
+ ```c#
5
6
  public class CsvDT
6
7
 
7
8
    //格納先