値リストが既にリストに格納されていて、その関数が毎回同じではない関数に値リストを渡すにはどうすればよいですか?リストメンバーを関数に渡す
説明するには、いくつかの異なるタイプのカスタムオブジェクト(この作業を行うにはList<object>
)のリストがあり、それらのオブジェクトを関数に渡したいと思います。しかし、その機能は必ずしも同じではありません。私はいくつかの異なる関数を持つことができ、Listの内容は常に関数の入力変数と一致すると仮定して、リストの内容を関数に渡すことができます。私は私のリストは、常にうまくいくこと、右の位置に変数の適切な量が含まれています知っているので、今
List<object> myListOfVariables = new List<object>();
myListOfVariables.Add("Hello, world!");
myListOfVariables.Add(10);
void SayHelloXTimes(string helloString, int x) {
for(int i = 0;i<x;i++) {
print(helloString)
}
}
SayHelloXTimes(myListOfVariables[0], myListOfVariables[1]);
:
次のコードは動作するかもしれないものの一例ですが、1つの欠陥のために私はただ一つの機能しか持っていなかった。しかし、問題は、私はこれを展開する必要があるので、私のリストを分解し、それを異なる量のパラメータで関数に渡すことができるということです。
その他の理由から、私のリストには常に適切な量の変数が適切な位置にあることがわかっているので、それについて心配する必要はありません。値を渡すために必要な関数の名前も知っています。
if (myListOfVariables.Length == 2) {
SayHelloXTimes(myListOfVariables[0], myListOfVariables[1]);
}
else if (myListOfVariables.Length == 3) {
SayHelloXTimesForY(myListOfVariables[0], myListOfVariables[1], myListOfVariables[2]);
}
しかし、これは(明らかに)本当に不格好コードであると私はすべてのコストでそれを避けるしたい:私はこのように、私は私のリストの長さに応じて、if
文の負荷を行う可能性があるとします。私の問題には別の解決策がありますか?私はこれが本当に混乱していることを知っているが、私はそれを説明するために最善を尽くした。私がしようとしていることについてまだ混乱している場合は、私に知らせてください。
いいえ、これは宿題の問題ではありません。 ;)
リスト自体を渡すのはなぜですか? – BrokenGlass
私はそれをハートビートでやっただろうが、説明するのにもう5つから10つのパラグラフが必要な理由ではできない。 :)短い話をすると、私は(何かのための)非常に基本的なAPIを作成しようとしており、潜在的なユーザーが関数のパラメータとしてオブジェクトのリストを使用することを制限したくありません。 –
私はそれが何であるか分からないので、私は今は何もしないと思います。私はIEnumerablesを見なければならないでしょう。 –