2012-11-15 7 views
0

배열이 있고 배열을 인쇄 할 때 출력에 $ 기호를 넣어야합니다. 나는 ValueType을 보았지만 배열에서 나와 함께 작동하지 않았다. 제발 도와주세요, 어떻게해야합니까?배열 요소에 통화 추가

여기 내 코드 사전에

string[,] Pizza = new string[5, 5] 
     { 
      {"Name of Pizza \t", "Small",  "Medium",  "Large",  "XLarge"}, 
      {"Plain \t \t",   "8.80",  "12.80", "16.80", "20.80"}, 
      {"Hawaian \t",   "10.90",  "15.90",  "20.90",  "25.90"}, 
      {"Beefy \t \t",   "10.90",  "16.90",  "21.90",  "26.90"}, 
      {"Vegetarian \t",  "10.90",  "14.90",  "19.90",  "24.90"} 
     }; 

     //print the array 
     Console.WriteLine("what type of Pizza do you want?"); 
     for (int i = 0; i < Pizza.GetLength (0); i++) 
     { 
      Console.WriteLine(); 
      for (int j = 0; j < Pizza.GetLength (1); j++) 
       Console.Write(Pizza[i, j]+'\t'); 
     } 

덕분이다.

+0

나는 아직 아무것도 시도하지 않았습니다. 아직 초보자입니다. 내가 원하는 것은 출력의 각 숫자 앞에 통화 기호입니다. –

+0

모든 것을 저장하기 위해 문자열 배열을 사용하는 것을 싫어합니다. 첫째, 피자 이름과 크기 당 가격 목록과 같은 동일한 데이터 유형으로 일반적인 데이터 구조에 저장합니다. 둘째, 가격을 문자열로 저장하므로 이러한 값이 숫자라는 사실에 대한 지식을 이미 잃어버린 것입니다. 10 진수 데이터 유형은 가격 저장에 가장 적합하며 올바르게 형식화 된 문자열 값을 생성하는 몇 가지 간단한 메커니즘을 제공합니다. 표준 형식 문자열 : http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx –

+0

힌트를 보내 주셔서 감사합니다. 그러나 강사의 할당 요구 사항입니다. :) –

답변

1

이렇게하면

string[,] Pizza = new string[5, 5] 
{ 
    {"Name of Pizza \t", "Small",  "Medium",  "Large",  "XLarge"}, 
    {"Plain \t \t",   "8.80",  "12.80", "16.80", "20.80"}, 
    {"Hawaian \t",   "10.90",  "15.90",  "20.90",  "25.90"}, 
    {"Beefy \t \t",   "10.90",  "16.90",  "21.90",  "26.90"}, 
    {"Vegetarian \t",  "10.90",  "14.90",  "19.90",  "24.90"} 
}; 

//print the array 
Console.WriteLine("what type of Pizza do you want?"); 
for (int i = 0; i < Pizza.GetLength (0); i++) 
{ 
    Console.WriteLine(); 

    for (int j = 0; j < Pizza.GetLength (1); j++) 

     if(j > 0 && i > 0){ 
      Console.Write("$" + Pizza[i, j] + '\t'); 
     } 
     else{ 
      Console.Write(Pizza[i, j] + '\t'); 
     } 
} 
+0

정말 고마워요 –

0

재 작성을 도움이 될 것입니다.

내 솔루션에 대한 핵심 아이디어는 가격을 표현하기 위해 10 진수 데이터 유형을 사용하고 적절한 통화 기호로 출력하기 위해 표준 "C"형식을 사용하고 있습니다.

enum PizzaSize 
{ 
    Small, 
    Medium, 
    Large, 
    XLarge 
} 

class Program 
{ 
    static void Main(string[] args) 
    { 
     var pizzas = new[] { 
      new { 
       Name = "Plain", 
       Prices = new [] { 
        new { Size = PizzaSize.Small, Price = 8.80M }, 
        new { Size = PizzaSize.Medium, Price = 12.80M }, 
        new { Size = PizzaSize.Large, Price = 16.80M }, 
        new { Size = PizzaSize.XLarge, Price = 20.80M }, 
       }.ToDictionary(item => item.Size, item => item.Price) 
      }, 
      new { 
       Name = "Hawaian", 
       Prices = new [] { 
        new { Size = PizzaSize.Small, Price = 10.90M }, 
        new { Size = PizzaSize.Medium, Price = 15.90M }, 
        new { Size = PizzaSize.Large, Price = 20.90M }, 
        new { Size = PizzaSize.XLarge, Price = 25.90M }, 
       }.ToDictionary(item => item.Size, item => item.Price) 
      }, 
      new { 
       Name = "Beefy", 
       Prices = new [] { 
        new { Size = PizzaSize.Small, Price = 10.90M }, 
        new { Size = PizzaSize.Medium, Price = 16.90M }, 
        new { Size = PizzaSize.Large, Price = 21.90M }, 
        new { Size = PizzaSize.XLarge, Price = 26.90M }, 
       }.ToDictionary(item => item.Size, item => item.Price) 
      }, 
      new { 
       Name = "Vegetarian", 
       Prices = new [] { 
        new { Size = PizzaSize.Small, Price = 10.90M }, 
        new { Size = PizzaSize.Medium, Price = 14.90M }, 
        new { Size = PizzaSize.Large, Price = 19.90M }, 
        new { Size = PizzaSize.XLarge, Price = 24.90M }, 
       }.ToDictionary(item => item.Size, item => item.Price) 
      }, 
     }; 

     int maxNameWidth = pizzas.Max(item => item.Name.Length); 

     const string nameOfPizzaLabel = "Name of Pizza"; 

     if (maxNameWidth < nameOfPizzaLabel.Length) 
     { 
      maxNameWidth = nameOfPizzaLabel.Length; 
     } 

     Console.WriteLine("what type of Pizza do you want?"); 

     Console.WriteLine("{0} \t{1}\t{2}\t{3}\t{4}", 
      nameOfPizzaLabel.PadLeft(maxNameWidth), 
      PizzaSize.Small, 
      PizzaSize.Medium, 
      PizzaSize.Large, 
      PizzaSize.XLarge); 

     foreach (var pizza in pizzas) 
     { 
      Console.WriteLine("{0}:\t{1:C}\t{2:C}\t{3:C}\t{4:C}", 
       pizza.Name.PadLeft(maxNameWidth), 
       pizza.Prices[PizzaSize.Small], 
       pizza.Prices[PizzaSize.Medium], 
       pizza.Prices[PizzaSize.Large], 
       pizza.Prices[PizzaSize.XLarge]); 
     } 
    } 
} 
+0

복잡한 대답에 대한 사과. 당신이 초보자인지 이해하기 어려울 수도 있습니다. 참조 용으로 익명 유형, 익명 배열 및 Linq (특히 ToDictionary 및 Max 함수)와 같이이 답변에 사용 된 도구/기술 목록이 있습니다. –