//매출 클래스
public class sale
{
//점포이름
public string ShopName{ get; set; }
//상품 종류
public string ProductCategory{ get; set; }
//매출 액
public int Amount{ get; set; }
};
//ReadSales 메서드
public class Test : MonoBehaviour
{
//매출 데이터를 읽어 들이고 Sales 객체 리스트를 반환한다.
static List<Sale> ReadSales(string filePath)
{
List<Sale> sales = new List<Sale>(); // 매출 데이터를 넣을 리스트 객체를 생성한다
string[] lines = File.ReadAllLines(filePath); // 파일을 한번에 읽어 들인다
foreach (string line in lines) //읽어 들인 행 개수만큼 반복한다
{
string[] items = line.Split(',');
Sale sale = new Sale //세일객체를 생성
{
ShopName = items[0],
ProductCategory = items[1],
Amount = int.Parse(items[2])
};
sales.Add(sale); //Sale객체를 리스트에 추가한다.
}
return sales;
}
}
//점포별 매출 계산
public class SalesCounter
{
private List<Sale> _sales;
//생성자
public SalesCounter(List<Sale> sales)
{
_sales = sales;
}
//dictionary에 집계를 저장한다
public Dictionary<string, int> GetPerStoreSales()
{
Dictionary<string, int> dict = new Dictionary<string, int>();
foreach (Sale sale in _sales)
{
if (dict.ContainsKey(sale.ShopName))
{
dict[sale.ShopName] += sale.Amount;
}
else
dict[sale.ShopName] = sale.Amount;
}
return dict;
}
}
//main
private void Start()
{
SalesCounter sales = new SalesCounter(ReadSales("sales.csv"));
Dictionary<string, int> amountPerStore = sales.GetPerStoreSales();
foreach(KeyValuePair<string,int> obj in amountPerStore)
{
Debug.Log(" key:" +obj.Key + "value:" + obj.Value);
}
}
댓글 없음:
댓글 쓰기