using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace day1
{
class PersonCard
{
private string name; public string Name //姓名
{
get { return name; }
set { name = value; }
}
private int age; //年龄 public int Age
{
get { return age; }
set
{
if (value > && value < )
{
age = value;
}
else
{
age = ;
}
}
}
private string sex; //性别 public string Sex
{
get { return sex; }
set
{
if (value == "男" || value == "女")
{
sex = value;
}
else
{
sex = "男";
}
}
}
private string hobby; //爱好 public string Hobby
{
get { return hobby; }
set { hobby = value; }
}
private string phone; //电话 public string Phone
{
get { return phone; }
set { phone = value; }
}
private string state; //状态 public string State
{
get { return state; }
set { state = value; }
}
}
} class Program
{
static void Main(string[] args)
{
string NAME = string.Empty;
int AGE = ;
string SEX = string.Empty;
string HOBBY = string.Empty;
string PHONE = string.Empty;
string STATE = string.Empty; //(1.新增 2.修改)
int i = ; //Key值
PersonCard personcard; //人员信息类
Dictionary<string, PersonCard> PersonCardList = new Dictionary<string, PersonCard>(); //人员信息表
Dictionary<string, PersonCard> PersonCardListCopy = new Dictionary<string, PersonCard>(); //复制人员信息表
while (true)
{
Console.WriteLine("请输入操作方案:1.新增;2.查询全部;3.单条查询;4.修改;5.删除;6.查询已删除信息");
string type = Console.ReadLine(); //接收操作类型
if (type == "") //新增
{
Console.WriteLine("姓名:");
NAME = Console.ReadLine();
Console.WriteLine("年龄:");
AGE = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("性别:");
SEX = Console.ReadLine();
Console.WriteLine("爱好:");
HOBBY = Console.ReadLine();
Console.WriteLine("电话:");
PHONE = Console.ReadLine();
personcard = new PersonCard(); //实例化人员信息类
personcard.Name = NAME;
personcard.Age = AGE;
personcard.Sex = SEX;
personcard.Hobby = HOBBY;
personcard.Phone = PHONE;
personcard.State = "";
PersonCardList.Add(i.ToString(), personcard); //集合添加一行
i++;
}
if (type == "") //查询全部
{
foreach (var item in PersonCardList)
{
Console.WriteLine("姓名:" + item.Value.Name + " " + "年龄:" + item.Value.Age + " " + "性别:" + item.Value.Sex + " " + "爱好:" + item.Value.Hobby + " " + "联系方式:" + item.Value.Phone + "状态:" + item.Value.State);
}
}
if (type == "") //单条查询
{
Console.WriteLine("请输入您要查询的人员信息");
string NAMEFind = Console.ReadLine();
if (PersonCardList.Values.Where(o => o.Name == NAMEFind).Count() > ) //lingq 人名存在数大于零
{
IEnumerable<KeyValuePair<string, PersonCard>> abc = PersonCardList.Where(o => o.Value.Name == NAMEFind);
foreach (KeyValuePair<string, PersonCard> kk in abc)
{
Console.WriteLine("姓名:" + kk.Value.Name + " " + "年龄:" + kk.Value.Age + " " + "性别:" + kk.Value.Sex + " " + "爱好:" + kk.Value.Hobby + " " + "联系方式:" + kk.Value.Phone + "状态:" + kk.Value.State);
} }
else
{
Console.WriteLine("对不起,没有您要查询的人员信息");
}
}
if (type == "") //修改
{
Console.WriteLine("请输入您要修改的人员");
string NAMEUpdate = Console.ReadLine();
if (PersonCardList.Values.Where(o => o.Name == NAMEUpdate).Count() > )
{
IEnumerable<KeyValuePair<string, PersonCard>> abc = PersonCardList.Where(o => o.Value.Name == NAMEUpdate);
Console.WriteLine("请输入您要修改的信息(姓名,年龄,性别,爱好,电话)");
string message = Console.ReadLine();
Console.WriteLine("请输入修改后的内容");
string Message = Console.ReadLine();
foreach (KeyValuePair<string, PersonCard> kk in abc)
{
if (message == "姓名")
{
kk.Value.Name = Message;
kk.Value.State = "";
}
if (message == "年龄")
{
kk.Value.Age = Convert.ToInt32(Message);
kk.Value.State = "";
}
if (message == "性别")
{
kk.Value.Sex = Message;
kk.Value.State = "";
}
if (message == "爱好")
{
kk.Value.Hobby = Message;
kk.Value.State = "";
}
if (message == "电话")
{
kk.Value.Phone = Message;
kk.Value.State = "";
}
Console.WriteLine("姓名:" + kk.Value.Name + " " + "年龄:" + kk.Value.Age + " " + "性别:" + kk.Value.Sex + " " + "爱好:" + kk.Value.Hobby + " " + "联系方式:" + kk.Value.Phone + "状态:" + kk.Value.State);
} }
else
{
Console.WriteLine("对不起,没有您要修改的人员");
}
}
if (type == "") //删除信息
{
Console.WriteLine("请输入您要删除的人员");
string NAMEDelete = Console.ReadLine();
if (PersonCardList.Values.Where(o => o.Name == NAMEDelete).Count() > ) //lingq 人名存在数大于零
{
List<KeyValuePair<string, PersonCard>> abc = PersonCardList.Where(o => o.Value.Name == NAMEDelete).ToList();
foreach (KeyValuePair<string, PersonCard> kk in abc)
{
PersonCardListCopy.Add(kk.Key, kk.Value);
PersonCardList.Remove(kk.Key);
}
foreach (var item in PersonCardList)
{
Console.WriteLine("姓名:" + item.Value.Name + " " + "年龄:" + item.Value.Age + " " + "性别:" + item.Value.Sex + " " + "爱好:" + item.Value.Hobby + " " + "联系方式:" + item.Value.Phone + "状态:" + item.Value.State);
}
}
else
{
Console.WriteLine("对不起,没有您要删除的人员");
}
}
if (type == "") //删除信息
{ foreach (var item in PersonCardListCopy)
{
Console.WriteLine("姓名:" + item.Value.Name + " " + "年龄:" + item.Value.Age + " " + "性别:" + item.Value.Sex + " " + "爱好:" + item.Value.Hobby + " " + "联系方式:" + item.Value.Phone + "状态:" + item.Value.State);
}
}
Console.ReadKey();
} }
}
本系列教程:
C#基础总结之八面向对象知识点总结-继承与多态-接口-http://www.cnblogs.com/spring_wang/p/6113531.html
C#基础总结之七面向对象知识点总结1http://www.cnblogs.com/spring_wang/p/6113526.html
C#基础总结之六 DataTable (临时表/数据源) 和Datatable 名片练习http://www.cnblogs.com/spring_wang/p/6113520.html
C#基础总结之五Dictionary<string, string[]>和while循环http://www.cnblogs.com/spring_wang/p/6113514.html
C#基础总结之四List-Hashtable-冒泡排序http://www.cnblogs.com/spring_wang/p/6113504.html
C#基础总结之三循环控制-for-数组-乘法表-arraylisthttp://www.cnblogs.com/spring_wang/p/6113496.html
C#基础总结之二循环控制-运算符http://www.cnblogs.com/spring_wang/p/6113484.html
C#基础总结之一变量常量-if嵌套语句-witch结构-类型转换http://www.cnblogs.com/spring_wang/p/6113476.html
C#基础课程之六(临时表)DataTable使用方法http://www.cnblogs.com/spring_wang/p/6113454.html
C#基础课程之五集合(HashTable,Dictionary)http://www.cnblogs.com/spring_wang/p/6113404.html
C#基础课程之四集合(ArrayList、List<泛型>)http://www.cnblogs.com/spring_wang/p/6113396.html
C#基础课程之三循环语句http://www.cnblogs.com/spring_wang/p/6113383.html
C#基础课程之二变量常量及流程控制http://www.cnblogs.com/spring_wang/p/6113372.html
C#基础课程之一注释和控制台、一些常识http://www.cnblogs.com/spring_wang/p/6113361.html
C#基础第九天-作业答案-储蓄账户(SavingAccount)和信用账户(CreditAccount) http://www.cnblogs.com/spring_wang/p/6113291.html
C#基础第九天-作业-储蓄账户(SavingAccount)和信用账户(CreditAccount) http://www.cnblogs.com/spring_wang/p/6113285.html
C#基础第八天-作业答案-设计类-面向对象方式实现两个帐户之间转账http://www.cnblogs.com/spring_wang/p/6113274.html
C#基础第八天-作业-设计类-面向对象方式实现两个帐户之间转账http://www.cnblogs.com/spring_wang/p/6113258.html
C#基础第七天-作业答案-利用面向对象的思想去实现名片-动态添加http://www.cnblogs.com/spring_wang/p/6113232.html
C#基础第七天-作业-利用面向对象的思想去实现名片-动态添加http://www.cnblogs.com/spring_wang/p/6113224.html
C#基础第六天-作业-利用面向对象的思想去实现名片http://www.cnblogs.com/spring_wang/p/6113028.html
C#基础第六天-作业答案-利用面向对象的思想去实现名片http://www.cnblogs.com/spring_wang/p/6113033.html
C#基础第五天-作业答案-用DataTable制作名片集http://www.cnblogs.com/spring_wang/p/6113022.html
C#基础第五天-作业-用DataTable制作名片集http://www.cnblogs.com/spring_wang/p/6113013.html
C#基础第四天-作业答案-Hashtable-list<KeyValuePair>泛型实现名片http://www.cnblogs.com/spring_wang/p/6113005.html
C#基础第四天-作业-Hashtable-list<KeyValuePair>泛型实现名片http://www.cnblogs.com/spring_wang/p/6113000.html
C#基础第三天-作业答案-集合-冒泡排序-模拟名片http://www.cnblogs.com/spring_wang/p/6112888.html
C#基础第三天-作业-集合-冒泡排序-模拟名片http://www.cnblogs.com/spring_wang/p/6112885.html
C#基础第二天-作业答案-九九乘法表-打印星星http://www.cnblogs.com/spring_wang/p/6112881.html
C#基础第二天-作业-九九乘法表-打印星星http://www.cnblogs.com/spring_wang/p/6112875.html
C#基础第一天-作业答案http://www.cnblogs.com/spring_wang/p/6112872.html
C#基础第一天-作业http://www.cnblogs.com/spring_wang/p/6112867.html
C#-string.Format对C#字符串格式化http://www.cnblogs.com/spring_wang/p/6077098.html