static void Main2(string[] args)
{
string[,] items = new string[2, 2];
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 2; j++)
{
Console.WriteLine("Enter Item Name:");
Console.WriteLine("Enter Item Price:");
Console.WriteLine("Enter Item Quantity:");
items[i, j] = Convert.ToString(Console.ReadLine());
}
}
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 2; j++)
{
Console.WriteLine("Item Name: " + items[i, j]);
Console.WriteLine();
Console.WriteLine("Item Price: " + items[i, j]);
Console.WriteLine();
Console.WriteLine("Item Quantity: " + items[i, j]);
Console.WriteLine();
}
Console.ReadLine();
}
}
How can I get more than one input in a 2d array, to save and output user info?
答案 0 :(得分:1)
If you want to use the array to hold the user's answers, then maybe this helps:
string[,] items = new string[2, 3];
for (int i = 0; i < 2; i++)
{
Console.WriteLine("Enter Item Name:");
items[i, 0] = Console.ReadLine();
Console.WriteLine("Enter Item Price:");
items[i, 1] = Console.ReadLine();
Console.WriteLine("Enter Item Quantity:");
items[i, 2] = Console.ReadLine();
}
for (int i = 0; i < 2; i++)
{
Console.WriteLine("Item Name: "+items[i,0]);
Console.WriteLine("Item Price: " + items[i, 1]);
Console.WriteLine("Item Quantity: " + items[i, 2]);
}
Console.ReadLine();
答案 1 :(得分:0)
Probably the most readable way to do this would be to create a simple class to store the data, and then store a collection of these classes in a List
. You can override
the ToString
method on the class, and you can create a simple wrapper for getting strongly typed data from the user (for Price
and Quantity
, we want them to only enter numbers):
public class Item
{
public string Name { get; set; }
public decimal Price { get; set; }
public int Quantity { get; set; }
public override string ToString()
{
return $"Name: {Name}, Price: {Price:C}, Quantity: {Quantity}";
}
}
Now a few wrappers to prompt the user for input and get strongly-typed results:
private static int GetIntFromUser(string prompt)
{
int result;
do
{
Console.Write(prompt);
} while (!int.TryParse(Console.ReadLine(), out result));
return result;
}
private static decimal GetDecimalFromUser(string prompt)
{
decimal result;
do
{
Console.Write(prompt);
} while (!decimal.TryParse(Console.ReadLine(), out result));
return result;
}
private static string GetInputFromUser(string prompt)
{
Console.Write(prompt);
return Console.ReadLine();
}
Then we can two items from the user in a loop:
static void Main(string[] args)
{
var items = new List<Item>();
for (var i = 0; i < 2; i++)
{
var itemNumber = $"Item #{i + 1}";
var item = new Item
{
Name = GetInputFromUser($"Enter {itemNumber} Name: "),
Price = GetDecimalFromUser($"Enter {itemNumber} price: "),
Quantity = GetIntFromUser($"Enter {itemNumber} Quantity: ")
};
items.Add(item);
}
foreach (var item in items)
{
Console.WriteLine(item);
}
}