問題描述:
abc表示該行描述的是一個(gè)產(chǎn)品,10/11代表產(chǎn)品編號,2表示產(chǎn)品數(shù)量
aa表示該行是對產(chǎn)品的描述信息(產(chǎn)品良好或不良),10/11來自abc編號,1表示產(chǎn)品數(shù)量
產(chǎn)品實(shí)體類product,有如下字段:
id,name,count(數(shù)量),remarks,goodproductNo(良品數(shù)量),badproductNo(次品數(shù)量)
問題是:如何用程序來分別統(tǒng)計(jì)編號為10,11的產(chǎn)品到底有多少良品,多少不良品,然后賦
值給實(shí)體類product,
* aaa.txt *
abc|10|測a試1|2|備注|
abc|11|測a試2|3|備注|
aa|10|1|良好商品·|
aa|10|1|良好商品·|
aa|11|1|不良商品·|
aa|11|1|良好商品·|
aa|11|1|良好商品·|
?
代碼:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { string[] temp = System.IO.File.ReadAllLines("E:\\aaa.txt", System.Text.Encoding.GetEncoding("gb2312")); Dictionary<int, product> dic = new Dictionary<int, product>(); foreach (string s in temp) { if (s.StartsWith("abc")) { string[] pInfo = s.Split('|'); int id = int.Parse(pInfo[1]); if (!dic.ContainsKey(id)) { product p = new product(); p.Id = id; p.Name = pInfo[2]; p.Count = int.Parse(pInfo[3]); p.Remarks = pInfo[4]; dic.Add(id, p); } } else if (s.StartsWith("aa")) { string[] qInfo = s.Split('|'); int id = int.Parse(qInfo[1]); if (dic.ContainsKey(id)) { product p = dic[id]; int count = int.Parse(qInfo[2]); string quality = qInfo[3]; if (quality == "良好商品·") p.GoodProductNo += count; else if (quality == "不良商品·") p.BadProductNo += count; } } } foreach (int i in dic.Keys) { product p = dic[i]; Console.WriteLine("Id:{0},name:{1},count:{2},remarks:{3},goodproductNo:{4},badproductNo:{5}", p.Id, p.Name, p.Count, p.Remarks, p.GoodProductNo, p.BadProductNo); } Console.ReadKey(); //任意鍵退出 } } }
?
/*
輸出:
Id:10,name:測試1,count:2,remarks:備注,goodproductNo:2,badproductNo:0
Id:11,name:測試2,count:3,remarks:備注,goodproductNo:2,badproductNo:1
*/
?
?
實(shí)體類product.cs:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class product { private int _id = 0; private int _count = 0; private int _goodproductNo = 0; private int _badproductNo = 0; private string _name = null; private string _remarks = null; public int Id { get { return this._id; } set { this._id = value; } } public int Count { get { return this._count; } set { this._count = value; } } public int GoodProductNo { get { return this._goodproductNo; } set { this._goodproductNo = value; } } public int BadProductNo { get { return this._badproductNo; } set { this._badproductNo = value; } } public string Name { get { return this._name; } set { this._name = value; } } public string Remarks { get { return this._remarks; } set { this._remarks = value; } } } }