我有一個回傳串列的方法。它需要 6 個引數(腿數)。還有一個屬性可以跟蹤腿數(它的值可以在 1-6 之間)。我似乎無法弄清楚是否可以合并一個回圈并僅根據腿數添加串列項。
private List<T> ReturnListOfTypes<T>(T leg1, T leg2, T leg3,
T leg4, T leg5, T leg6)
{
List<T> legs = new List<T>();
for (int i = 0; i < NumberOfLegs; i )
{
}
legs.Add(leg1);
legs.Add(leg2);
legs.Add(leg3);
legs.Add(leg4);
legs.Add(leg5);
legs.Add(leg6);
return legs;
}
如果 NumberOfLegs = 3,我只希望串列添加:
legs.Add(leg1);
legs.Add(leg2);
legs.Add(leg3);
如果 NumberOfLegs = 1,它應該只將第 1 條腿添加到串列中:
legs.Add(leg1);
現在,串列項在回圈之外,因為我無法找到一種僅根據回圈值添加指定項的方法。
uj5u.com熱心網友回復:
也許您可以將其設為 params []:
private List<T> ReturnListOfTypes<T>(params T[] legs)
{
List<T> legList = new List<T>(NumberOfLegs);
for (int i = 0; i < Math.Min(NumberOfLegs, legs.Length); i )
{
legList.Add(legs[i]);
}
return legList;
}
您現在仍然可以像在代碼中一樣使用它,但它被視為一個陣列。這假定“腿”的順序始終是您要回傳的順序。
所以你可以使用它,例如:
List<string> list = ReturnListOfTypes("1", "2", "3");
uj5u.com熱心網友回復:
如果我猜對了,這就是在特定腿上添加數字。所以在這種情況下:
private List<T> ReturnListOfTypes<T>(T leg1, T leg2, T leg3,
T leg4, T leg5, T leg6)
{
int NumberOfLegs = 6;
int j=1;
List<T> legs = new List<T>();
for (int i = 0; i <= (NumberOfLegs 1); i )
{
j = j i;
var newLeg = "leg" j;
///Dont forget here, your for loop starts with 0, if you dont have declared leg0 then there would be error)
legs.Add(newLeg);
}
return legs;
}
///Start with i=1
int NumberOfLegs = 6;
List<T> legs = new List<T>();
for (int i = 1; i < (NumberOfLegs 1); i )
{
var newLeg = "leg" i;
legs.Add(newLeg);
}
return legs;
}
您也可以在回圈之前使用 if 陳述句避免 outofRange:if(NumberOfLegs > 0)
uj5u.com熱心網友回復:
我不確定我是否正確理解了您的問題,但是以下代碼應該可以滿足您的要求:
List<T> ReturnListOfTypes<T>(T leg1, T leg2, T leg3, T leg4, T leg5, T leg6)
{
List<T> legs = new List<T>();
if (NumberOfLegs >= 1) { legs.Add(leg1); }
if (NumberOfLegs >= 2) { legs.Add(leg2); }
if (NumberOfLegs >= 3) { legs.Add(leg3); }
if (NumberOfLegs >= 4) { legs.Add(leg4); }
if (NumberOfLegs >= 5) { legs.Add(leg5); }
if (NumberOfLegs >= 6) { legs.Add(leg6); }
return legs;
}
希望能幫助到你
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/467851.html
上一篇:快速操場中的錯誤:無法將型別“Int”的值分配給型別“[Int]”
下一篇:Python乘法表學校練習
