30天C#基础巩固-----序列化,集合
关于集合的练习。
----->计算字符串每个字符出现的次数。
Console.WriteLine("请输入?");
string input = Console.ReadLine();
Dictionary<char,int> dic=new Dictionary<char, int>();
for (int i = 0; i <input.Length; i++) //遍历输入字符,此时它为char类型。
{
if (dic.ContainsKey(input[i])) //看集合中是否有key,有则使其value++,没有则Add()进去
{
dic[input[i]]++;
}
else
{
dic.Add(input[i], 1);
}
}
//循环输出
foreach (KeyValuePair<char, int> item in dic)
{
Console.WriteLine("{0}出现的次数是:{1}",item.Key,item.Value);
}
Console.ReadKey();
---->序列化
序列化就是格式化,是指将一个对象以某种格式进行呈现的样子。
--步骤---->
---在需要序列化的类前标记[Serializable]
---创建序列化的对象BinaryFormatter
---创建流
---调用Serialize方法。(Serialize():将对象或具有指定顶级(根)的对象图形序列化为给定流。)
---->二进制序列化
[Serializable] //需要序列化的标记
class Address
{
public string Name { get; set; }
public int Age { get; set; }
}
//BinaryFormatter:以二进制格式将对象或整个连接对象图形序列化和反序列化。
BinaryFormatter bf=new BinaryFormatter();
using (FileStream fs=new FileStream("data",FileMode.Create,FileAccess.Write))
{
//将对象或具有指定顶级(根)的对象图形序列化为给定流。
bf.Serialize(fs, new Address() { Age = 120, Name = "阿辉" });
}
2:反序列化
//BinaryFormatter:以二进制格式将对象或整个连接对象图形序列化和反序列化。
BinaryFormatter bf = new BinaryFormatter();
using (FileStream fs = new FileStream("data", FileMode.Open, FileAccess.Read))
{
//Deserialize()+将指定的流反序列化为对象图形。
Address a = bf.Deserialize(fs) as Address;
}
---->XML序列化
//XmlSerializer+将对象序列化到 XML 文档中和从 XML 文档中反序列化对象。
XmlSerializer xf=new XmlSerializer(typeof(Address)); //拱顶
using (FileStream fs = new FileStream("data.xml", FileMode.Create, FileAccess.Write))
{
//Serialize()+使用指定的 System.IO.Stream 序列化指定的 System.Object 并将 XML 文档写入文件
xf.Serialize(fs,new Address(){Name="ahui",Age=12});
}
这里我们的类Address需要设置为public类型的,要不然胡出现下面的错误。
修改之后就好了。
2:反XML序列化
XmlSerializer xf=new XmlSerializer(typeof(Address));
using (FileStream fs=new FileStream("data.xml",FileMode.Open,FileAccess.Read))
{
Address address= xf.Deserialize(fs) as Address;
}
---->Javascript序列化(JSON格式数据)
//添加一个引用,Web.Extension,这里不需要流来进行操作。
JavaScriptSerializer jf=new JavaScriptSerializer();
Address a=new Address(){Age=11,Name="ahui"};
//将对象转换为 JSON 字符串。返回的是string类型的。
string ser = jf.Serialize(a);
Console.WriteLine(ser);
Console.ReadKey();
30天C#基础巩固-----序列化,集合的更多相关文章
- 100多个很有用的JavaScript函数以及基础写法大集合
100多个很有用的JavaScript函数以及基础写法大集合 1.document.write("");为 输出语句2.JS中的注释为//3.传统的HTML文档顺序是:docume ...
- C#基础课程之五集合(HashTable,Dictionary)
HashTable例子: #region HashTable #region Add Hashtable hashTable = new Hashtable(); Hashtable hashTabl ...
- 使用JavaScriptSerializer序列化集合、字典、数组、DataTable为JSON字符串 分类: 前端 数据格式 JSON 2014-10-30 14:08 169人阅读 评论(0) 收藏
一.JSON简介 JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式. JSON是"名值对"的集合.结构由大 ...
- C#基础课程之四集合(ArrayList、List<泛型>)
list泛型的使用 ArrayList list = new ArrayList(); ArrayList list = ); //可变数组 list.Add("我"); //Ad ...
- SQL基础--查询之四--集合查询
SQL基础--查询之四--集合查询
- WPF 绑定以基础数据类型为集合的无字段名的数据源
WPF 绑定以基础数据类型为集合的无字段名的数据源 运行环境:Window7 64bit,.NetFramework4.61,C# 6.0: 编者:乌龙哈里 2017-02-21 我们在控件的数据绑定 ...
- 『Python基础-11』集合 (set)
# 『Python基础-11』集合 (set) 目录: 集合的基本知识 集合的创建 访问集合里的值 向集合set增加元素 移除集合中的元素 集合set的运算 1. 集合的基本知识 集合(set)是一个 ...
- Python基础数据类型之集合
Python基础数据类型之集合 集合(set)是Python基本数据类型之一,它具有天生的去重能力,即集合中的元素不能重复.集合也是无序的,且集合中的元素必须是不可变类型. 一.如何创建一个集合 #1 ...
- 小白学 Python(15):基础数据结构(集合)(下)
人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...
随机推荐
- 人人都是 DBA(I)SQL Server 体系结构
在了解 SQL Server 数据库时,可以先从数据库的体系结构来观察.SQL Server 的体系结构中包含 4 个主要组成部分: 协议层(Protocols) 关系引擎(Relational En ...
- DBCP连接池使用问题
问题现象: 启动应用,访问无压力,一切正常,一段时间过后,应用访问异常. 问题分析: 1.web容器线程爆满,拒绝服务.由于应用并发量大,线程响应时间长增加,线程池连接数逐步递增直到爆满,导致应用拒绝 ...
- dijit样式定制之TextBox(一)
参考资料:http://dojotoolkit.org/reference-guide/1.9/dijit/themes.html http://archive.dojotoolkit.org/nig ...
- Github注册过程以及对管理软件的了解
二.目前流行的源程序管理软件和项目管理软件主要有以下一些: 1.Visual Source Safe 优点:如果开发工具是VS.NET,用VSS较合适,方便,安装配置和使用都简单,版本控制简单,打la ...
- 【吉光片羽】MVC 导出Word的两种方式
1.直接将Html转成Word.MVC自带FileResult很好用.Html中我们也可以嵌入自己的样式. html: <div id="target"> <st ...
- Entity Framework 5.0系列之Code First数据库迁移
我们知道无论是"Database First"还是"Model First"当模型发生改变了都可以通过Visual Studio设计视图进行更新,那么对于Cod ...
- 据说每个大牛、小牛都应该有自己的库——DOM处理续
在上篇据说每个大牛.小牛都应该有自己的库——DOM处理最后剩下attr()和css()方法没有处理,因为这两个方法当时并不自计划中,是写着写着突然想到的,一时间没有特别好的思路,当时已十一点多了,就去 ...
- VC++中开发汇编语言(转)
汇编程序结构 一个显示字符串的汇编程序 程序格式 一.模式定义 二.includelib语句 三.函数声明语句 四.数据和代码部分 Visual C/C++环境 建立工程 汇编程序的调试 一.设置断点 ...
- 《轻量级Java Web整合开发入门SSH》 - 快速理解Java框架的又一积木
学习JAVA不难,难的是没有多余的时间给你仔细学习. 伴随着项目的不断跟进,责任重于泰山,必须快速提升. 我不能期望把一本书或者一个项目完全吃透,只希望能用数量去 ...
- MSSQL Server数据库的四种连接方法和sql连接字符串
MSSQL Server数据库的四种连接方法和sql连接字符串 分类: [ 03 ] C#(131) [ 07 ] SQL Server(68) [ 01 ] .NET(189) 今天用SQL Ser ...