我正在學習 C#。我想在佇列中存盤 x,y 坐標。因此我創建了一個陣列。但我寫不出來。任何人都可以幫助我并告訴我我做錯了什么嗎?
非常感謝!
public static void Main()
{
Random rnd = new Random();
Queue<int[]> myQ = new Queue<int[]>();
int plX = rnd.Next(0, 10);
int plY = rnd.Next(0, 10);
int[] arr1 = new int[] {plX, plY};
int[] arr2 = new int[] {plX, plY};
int[] arr3 = new int[] {plX, plY};
int[] arr4 = new int[] {plX, plY};
myQ.Enqueue(arr1);
myQ.Enqueue(arr2);
myQ.Enqueue(arr3);
myQ.Enqueue(arr4);
foreach (int[] point in myQ)
{
WriteLine(point);
}
}
uj5u.com熱心網友回復:
用你的foreach回圈替換
foreach (var point in myQ)
{
Console.WriteLine(point[0]);
Console.WriteLine(point[1]);
}
值已保存,但您列印的是存盤值的型別,而不是實際值。
要按照您嘗試的方式進行操作,您必須為pointwith overwrittenToString()方法創建自定義類:
using System;
using System.Collections.Generic;
public class Program
{
public static void Main()
{
Random rnd = new Random();
var myQ = new Queue<Point>();
var arr1 = new Point(rnd.Next(0, 10), rnd.Next(0, 10));
var arr2 = new Point(rnd.Next(0, 10), rnd.Next(0, 10));
var arr3 = new Point(rnd.Next(0, 10), rnd.Next(0, 10));
var arr4 = new Point(rnd.Next(0, 10), rnd.Next(0, 10));
myQ.Enqueue(arr1);
myQ.Enqueue(arr2);
myQ.Enqueue(arr3);
myQ.Enqueue(arr4);
foreach (var point in myQ)
{
Console.WriteLine(point);
}
}
public class Point
{
public int PlX {get; set;}
public int PlY {get; set;}
public Point(int x, int y)
{
PlX = x;
PlY = y;
}
public override string ToString()
{
return PlX ", " PlY;
}
}
}
請注意,這是一個示例 - 它非常基本且不安全(空檢查等...)
uj5u.com熱心網友回復:
您可以使用字串插值:
foreach (var point in myQ)
{
Console.WriteLine($"{point[0]} : {point[1]}");
}
請注意,var而不是int[]:您不必記住確切的型別(通常很長)并讓編譯器為您完成。
你可以這樣寫:
public static void Main()
{
// First let's generate coordinates
var rnd = new Random();
int plX = rnd.Next(0, 10);
int plY = rnd.Next(0, 10);
// Then create queue
var myQ = new Queue<int[]>(new int[][] {
new int[] {plX, plY},
new int[] {plX, plY},
new int[] {plX, plY},
new int[] {plX, plY},
});
// Finally, print the queue
foreach (var point in myQ)
{
Console.WriteLine($"{point[0]} : {point[1]}");
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/361796.html
上一篇:我不知道如何將一個變數的每個資料值賦予另一個變數的值
下一篇:計算物件中的每個重復值并增加
