C#スクリプトにて、
配列の複数の要素をif文のひとつの条件内で指定することは出来るでしょうか?
例
配列を
int[] Array = new int[2];
としたとき、 Array[0]とArray[1]がそれぞれ1,0である場合の処理
if (Array[0] == 1 && Array[1] == 0)
{
}
ではスマートでない気がするのですが、
これをひとつの条件にまとめることは可能でしょうか?
イメージ(あくまでイメージ)
if (Array[] == 1,0)
{
}
お二方のご回答により実装できましたので、その一例を記させていただきます。
用語やその使い方が誤っているかもしれませんが、素人の書くこと、どうぞご了承ください。
public class Test : MonoBehaviour
{
//int型のNoという名前(ラベル)とInt型のTimeという名前のタプルを宣言。
(int No, int Time) TEST = (0, 0);
void Start() { //それぞれの要素に適当に値を入れてみる。 TEST.No = 99; TEST.Time = 100; } void update { //if文で二つの値を指定してみる。ここではTEST.Noが99かつ、TEST.Timeが100のとき。 if(TEST == (99, 100)) //Unityのコンソールに値を表示してみる。 Debug.Log(TEST); // (99, 100) と表示される。 Debug.Log(TEST.No + ", " + TEST.Time); //99, 100 と表示される。 }
//このif文は if (TEST.No == 99 && TEST.Time == 100) でも書き表せる。
}
SequentialEqal
いやもしかしたらタプルと StructuralComparisons が使えるかもしれません。
https://qiita.com/Zuishin/items/f895ab722331f20c9de7
StructuralComparisons.StructuralEqualityComparer.Equals(Array, (1, 0))
実際に試してみたところ、StructuralComparisons は使えませんでした。型が違うために配置が違うんだろうと思われます。
お手を煩わせてすみません、ありがとうございます。
結構長くなってしまうんですね…
何も読んでないのがわかりますね。
お返事が遅くなりすみません。
タプルにて実装出来ました。
SequentialEqualは今の私には使い方が判らず、サイトのさらにその先の記事まで拝見させていただきましたが、二つの要素を比較するもののように見え、望みの機能を実装しきれませんでした。
また折を見て読み返し、理解に努めさせて頂こうと思います。ありがとうございました。
それはそれとして、攻撃的なコメントとして通報させていただきました。ご了承ください。
実際読んだのは今でしょ。
二つの要素を比較するので、配列にすればいいということなんですが?
回答1件
あなたの回答
tips
プレビュー