本文介绍了如何将旧产品(序列化)与新产品进行比较,如果同一产品意味着在下面的程序中仅为产品添加数量而不重复该产品的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

//产品代码



使用系统;

使用System.Collections.Generic;

使用System.Linq;

使用System.Text;





命名空间ConsoleApplication4

{

[可序列化]

公共类产品

{

私人字符串ProductID;

私人字符串ProductName;

私人浮动价格;

private int数量;



公共产品( )

{

}



public void阅读()

{

Console.WriteLine(输入产品ID:);

ProductID = Console.ReadLine();

Console.WriteLine(输入产品名称:);

ProductName = Console.ReadLine();

Console.WriteLine(输入价格:);

Price = float.Parse(Console.ReadLine());

Console.WriteLine(输入数量:);

数量= int.Parse(Console.ReadLine( ));

}



public void显示()

{

Console.WriteLine({0} \t\t {1} \t\t {2} \t\t {3},ProductID,ProductName,Price,Quantity);

}

}

}



//主要节目代码



使用System;

使用System.Collections.Generic;

使用System.Linq;

使用System.Text;

使用System.IO;

使用System.Runtime.Serialization.Formatters.Binary;





命名空间ConsoleApplication4

{

class program

{

static void Main(string [] args)

{

List< product> list = new List< product>();

int op;

try

{

Stream stream = File.Open(F:\\Product.obs,FileMode.Open);

BinaryFormatter formatter = new BinaryFormatter();

list =(List< product>)formatter.Deserialize(stream);

}

catch(Exception ex)

{

}

do

{

Console.Clear();

Console.WriteLine(1.New product );

Console.WriteLine(2.List All);

Console.WriteLine(0.Exit);

控制台.WriteLine(------------------);

Console.WriteLine(输入选择:);

op = int.Parse(Console.ReadLine());

切换h(op)

{

案例1:

产品p =新产品();

p。阅读();

list.Add(p);

break;

案例2:

控制台。 WriteLine(产品详细信息);

Console.WriteLine(--------------------);

Console.WriteLine(ProductID \t ProductName \t Price \t Quantity);

Console.WriteLine(-------------- ----------------------------);

for(int i = 0;我< list.Count; i ++)

{

p = list [i];



p.Show();

}

休息;

案例0:

流stream = File.Open(F:\\Product .obs,FileMode.Create);

BinaryFormatter formatter = new BinaryFormatter();

formatter.Serialize(stream,list);

休息;

}

Console.ReadKey();

}

while(op!= 0);

}

}

}

//PRODUCT CODE

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace ConsoleApplication4
{
[Serializable]
public class Product
{
private string ProductID;
private string ProductName;
private float Price;
private int Quantity;

public Product()
{
}

public void Read()
{
Console.WriteLine("Enter Product ID : ");
ProductID = Console.ReadLine();
Console.WriteLine("Enter Product Name : ");
ProductName = Console.ReadLine();
Console.WriteLine("Enter Price : ");
Price = float.Parse(Console.ReadLine());
Console.WriteLine("Enter Quantity : ");
Quantity = int.Parse(Console.ReadLine());
}

public void Show()
{
Console.WriteLine("{0}\t\t{1}\t\t{2}\t\t{3}", ProductID, ProductName, Price, Quantity);
}
}
}

//MAIN PROGRAM CODE

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;


namespace ConsoleApplication4
{
class Program
{
static void Main(string[] args)
{
List<product> list = new List<product>();
int op;
try
{
Stream stream = File.Open("F:\\Product.obs", FileMode.Open);
BinaryFormatter formatter = new BinaryFormatter();
list = (List<product>)formatter.Deserialize(stream);
}
catch (Exception ex)
{
}
do
{
Console.Clear();
Console.WriteLine("1.New product");
Console.WriteLine("2.List All");
Console.WriteLine("0.Exit");
Console.WriteLine("------------------");
Console.WriteLine("Enter Choice : ");
op = int.Parse(Console.ReadLine());
switch (op)
{
case 1:
Product p = new Product();
p.Read();
list.Add(p);
break;
case 2:
Console.WriteLine("Product Details");
Console.WriteLine("--------------------");
Console.WriteLine("ProductID\t ProductName\t Price\t Quantity");
Console.WriteLine("------------------------------------------");
for (int i = 0; i < list.Count; i++)
{
p = list[i];

p.Show();
}
break;
case 0:
Stream stream = File.Open("F:\\Product.obs", FileMode.Create);
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(stream, list);
break;
}
Console.ReadKey();
}
while (op != 0);
}
}
}

推荐答案

这篇关于如何将旧产品(序列化)与新产品进行比较,如果同一产品意味着在下面的程序中仅为产品添加数量而不重复该产品的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-30 23:35