我有這個家庭作業,我有一個myArr用值呼叫的陣列4, 9, 2, 5, 1, 4, 8, 3, 3,我必須從那里提取偶數并將它們放入myOtherArray,然后用 foreach 列印它們。我嘗試撰寫代碼,但我有點卡住了,因為我知道它不起作用。
這是我的嘗試:
int[] myArr = { 4, 9, 2, 5, 1, 4, 8, 3, 3 };
int num = 0;
int[] myOtherArr = new int[num];
for (int i = 0; i < myArr.Length; i )
{
if (myArr[i] % 2 == 0)
{
num ;
}
}
Num是計數有多少偶數的計數器,但現在我不知道如何將它們保存到myOtherArray,因為我得到了錯誤Index was outside the bounds of the array.
for (int i = 0; i < myArr.Length; i )
{
if (myArr[i] % 2 == 0)
{
myArr[i] = myOtherArr[i];
}
}
現在我不知道該怎么做。請幫助我為即將到來的考試做好準備。
謝謝大家的回答。
uj5u.com熱心網友回復:
您也可以嘗試使用 Array.FindAll() 內置方法來實作這一點,而不是回圈構造。請嘗試以下代碼。
var myArr = new int[] { 4, 9, 2, 5, 1, 4, 8, 3, 3 };
var myOtherArr = Array.FindAll(myArr, v => v%2 == 0);
謝謝你。
uj5u.com熱心網友回復:
我這樣做是因為您不必計算陣列的長度。
int[] myArr = { 4, 9, 2, 5, 1, 4, 8, 3, 3 };
int[] myOtherArr;
List<int> cache = new List<int>();
//goes through each number in this array and stores the ones for that round in "num".
//If the number is "% 2 == 0" then it will be added to a list.
foreach (int num in myArr)
{
if (num % 2 == 0)
{
cache.Add(num);
}
}
//the list is converted and stored in your array
myOtherArr = cache.ToArray();
//all numbers are displayed
foreach (int num in myOtherArr)
{
Console.WriteLine(num);
}
但你也可以這樣寫(例如,我喜歡這樣做)。
int[] myArr = { 4, 9, 2, 5, 1, 4, 8, 3, 3 };
int[] myOtherArr;
List<int> cache = new List<int>();
//goes through each number in this array and stores the ones for that round in "num".
//If the number is "% 2 == 0" then it will be added to a list.
foreach (int num in myArr)
if (num % 2 == 0)
cache.Add(num);
//the list is converted and stored in your array
myOtherArr = cache.ToArray();
//all numbers are displayed
foreach (int num in myOtherArr)
Console.WriteLine(num);
uj5u.com熱心網友回復:
問題在這里:
int[] myOtherArr = new int[num]; // you initialize the array to 0 length.
嘗試這個:
int[] myArr = { 4, 9, 2, 5, 1, 4, 8, 3, 3 };
int num = 0;
for (int i = 0; i < myArr.Length; i )
{
if (myArr[i] % 2 == 0)
{
num ;
}
}
int[] myOtherArr = new int[num];
for (int i = 0; i < myArr.Length; i )
{
if (myArr[i] % 2 == 0)
{
myOtherArr[i] = myArr[i];
}
}
uj5u.com熱心網友回復:
我會嘗試這樣的事情
int[] myArr = { 4, 9, 2, 5, 1, 4, 8, 3, 3 };
var i=0;
foreach (var item in myArr)
if (item % 2 == 0) i ;
var myOtherArr= new int[i];
i=0;
foreach (var item in myArr)
if (item % 2 == 0) { myOtherArr[i] = item; i ; }
uj5u.com熱心網友回復:
好吧,計算偶數(num):
int[] myArr = new int[] { 4, 9, 2, 5, 1, 4, 8, 3, 3 };
for (int i = 0; i < myArr.Length; i )
{
if (myArr[i] % 2 == 0)
{
num ;
}
}
你應該創建myOtherArr陣列(注意,你應該在計算myOtherArr 之后創建): num
int[] myOtherArr = new int[num];
myArr然后您可以在將值分配給時回圈myOtherArr:
// Index within myOtherArr
// Note, that we have two indexes:
// i = 0 .. myArr.Length
// otherIndex = 0 .. num
int otherIndex = 0;
for (int i = 0; i < myArr.Length; i )
if (myArr[i] % 2 == 0)
myOtherArr[otherIndex ] = myArr[i];
在現實生活中,我們通常在Linq的幫助下進行查詢:
int[] myOtherArr = myArr
.Where(item => item % 2 == 0)
.ToArray();
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/449940.html
標籤:C#
下一篇:現有庫擴展的C#命名空間命名約定
