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

最新文章

  1. Java中如何克隆集合——ArrayList和HashSet深拷贝
  2. swift UIAlertController教程
  3. PHP函数补完:var_export()
  4. TCP/IP具体解释--三次握手和四次握手 Dos攻击
  5. FileStream 操作文件复制
  6. UML学习(一)类图和对象图
  7. @Value 注解获取properties值
  8. css常用属性2
  9. ActiveMQ入门示例
  10. android新窗口以及传值
  11. 求助,我在安装SQL sever2016时遇到了这种情况
  12. [20171031]rman xxx Failure.txt
  13. Linux并发执行很简单,这么干就对了
  14. IE8不能保存cookie,造成response.redirect死循环的原因
  15. 动态SQL中 实现条件参数 varchar类型的参数名称 以及模糊查询实现
  16. [转]详解Oracle高级分组函数(ROLLUP, CUBE, GROUPING SETS)
  17. Android开发之旅3:android架构
  18. shell_advanced
  19. Mysql经常使用基本命令汇总及默认账户权限与改动
  20. vue-学习笔记(更新中...)

热门文章

  1. intel vt
  2. MySql SqlServer Sqlite中关于索引的创建
  3. Ubuntu/Centos 系统上安装与配置Apache
  4. Java 判断Windows下某个进程是否运行
  5. 自己定义构造方法和description方法
  6. 算法笔记_215:第六届蓝桥杯软件类校赛部分真题(Java语言B组)
  7. C# 多线程并发锁模式-总结
  8. 删除草稿信息之后 threads表的数据没有发生变化
  9. JS中文转换(UTF-8),url传递中文乱码解决
  10. 系统空间占用排查 tomcat超大日志catalina.out 删除 与df 状态更新