質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

解決済

C#のリストでcapacityが違っても要素が同じなら条件文を通したい

1017159
1017159

総合スコア1

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

1回答

0評価

0クリップ

225閲覧

投稿2022/06/27 10:23

まず{1,1}の要素を持つリストAを作ります。
その後Aの先頭の要素{1}を持ったリストBを作ります
そしてAの先頭以外の要素{1}を持ったリストCを作ります。
最後に{1}の要素を持ったリストDを作ります。
これにより{1}の要素を持つリストB,C,Dが作れたわけですが、要素が同じでもB==D、C==Dの条件文ははじかれます。おそらくリストのCapacityが違うため同じ配列だと認識されないのが原因だと思うのですが、Capacityが違くとも同じ配列として認識させる方法はリストの要素を1つ1つ照らし合わせるしかないのでしょうか?教えてください。

C#

using System.Collections.Generic; using System; using System.Linq; using System.ComponentModel; public class test3 { static void Main() { List<string> A = new List<string>() { "1", "1" }; List<string> B = head_get(A); List<string> C = Beheading(A); List<string> D = new List<string>() { "1" }; if (B == D) { Console.WriteLine("B=D"); } else { Console.WriteLine("B!=D"); } if (C == D) { Console.WriteLine("C=D"); } else { Console.WriteLine("C!=D"); } } static List<string> head_get(List<string> list) {//先頭の要素のみを返す List<string> head = new List<string>(); head.Add(list[0]); return head; } static List<string> Beheading(List<string> list) {//先頭以外の要素を返す if (list.Count == 0) return list; List<string> body = new List<string>(list); body.RemoveAt(0); return body; } }

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

episteme

2022/06/27 10:59

「ふたつの参照型に対して == とはいかなる意味か」を理解したうえでの質問ですか?
Zuishin

2022/06/27 11:10

> リストの要素を1つ1つ照らし合わせるしかないのでしょうか? はいかいいえで言えばはいですが、自分でループを書かなくても便利なメソッドがあります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。