关于集合的练习。

----->计算字符串每个字符出现的次数。

              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#基础巩固-----序列化,集合的更多相关文章

  1. 100多个很有用的JavaScript函数以及基础写法大集合

    100多个很有用的JavaScript函数以及基础写法大集合 1.document.write("");为 输出语句2.JS中的注释为//3.传统的HTML文档顺序是:docume ...

  2. C#基础课程之五集合(HashTable,Dictionary)

    HashTable例子: #region HashTable #region Add Hashtable hashTable = new Hashtable(); Hashtable hashTabl ...

  3. 使用JavaScriptSerializer序列化集合、字典、数组、DataTable为JSON字符串 分类: 前端 数据格式 JSON 2014-10-30 14:08 169人阅读 评论(0) 收藏

    一.JSON简介 JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式. JSON是"名值对"的集合.结构由大 ...

  4. C#基础课程之四集合(ArrayList、List<泛型>)

    list泛型的使用 ArrayList list = new ArrayList(); ArrayList list = ); //可变数组 list.Add("我"); //Ad ...

  5. SQL基础--查询之四--集合查询

    SQL基础--查询之四--集合查询

  6. WPF 绑定以基础数据类型为集合的无字段名的数据源

    WPF 绑定以基础数据类型为集合的无字段名的数据源 运行环境:Window7 64bit,.NetFramework4.61,C# 6.0: 编者:乌龙哈里 2017-02-21 我们在控件的数据绑定 ...

  7. 『Python基础-11』集合 (set)

    # 『Python基础-11』集合 (set) 目录: 集合的基本知识 集合的创建 访问集合里的值 向集合set增加元素 移除集合中的元素 集合set的运算 1. 集合的基本知识 集合(set)是一个 ...

  8. Python基础数据类型之集合

    Python基础数据类型之集合 集合(set)是Python基本数据类型之一,它具有天生的去重能力,即集合中的元素不能重复.集合也是无序的,且集合中的元素必须是不可变类型. 一.如何创建一个集合 #1 ...

  9. 小白学 Python(15):基础数据结构(集合)(下)

    人生苦短,我选Python 前文传送门 小白学 Python(1):开篇 小白学 Python(2):基础数据类型(上) 小白学 Python(3):基础数据类型(下) 小白学 Python(4):变 ...

随机推荐

  1. SQL Server里的闩锁介绍

    在今天的文章里我想谈下SQL Server使用的更高级的,轻量级的同步对象:闩锁(Latch).闩锁是SQL Server存储引擎使用轻量级同步对象,用来保护多线程访问内存内结构.文章的第1部分我会介 ...

  2. Sensor(GYROSCOPE)

    package com.example.sensor01; import java.util.List; import android.hardware.Sensor; import android. ...

  3. WaterfallTree(瀑布树) 详细技术分析系列

    前言 WaterfallTree(瀑布树) 是最强纯C#开源NoSQL和虚拟文件系统-STSdb专有的(版权所有/专利)算法/存储结构. 参考 关于STSdb,我之前写过几篇文章,譬如: STSdb, ...

  4. js 倒计时实现

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  5. oracle 表类型变量的使用

    转载于:http://www.itxuexiwang.com/a/shujukujishu/oracle/2016/0216/89.html?1455872314 使用记录类型变量只能保存一行数据,这 ...

  6. 手把手教你在VirtualBox中与主机共享文件夹

    安装VirtualBox为了共享文件夹,折腾了一晚上!网上的很多资料都不是很全面,这里就全面的总结一下,如果有其他的疑问,可以留言多多交流. VirtualBox下载地址,版本为5.1.2 设置共享文 ...

  7. exe文件添加为服务

    首先,去下载一个叫rktools.exe的工具(我提供个下载地址Windows 2003 Resource Kits),下载完后安装该资源包,里面有个instsrv.exe和srvany.exe的工具 ...

  8. react4 props 解析

    <body><!-- React 真实 DOM 将会插入到这里 --><div id="example"></div> <!- ...

  9. 常用Math 方法

    /** * * @authors Your Name (you@example.org) * @date 2016-11-18 11:26:44 * @version $Id$ */ Math.pow ...

  10. 让 “微软雅黑” 在IE6下完美显示

    微软雅黑可以说是网页中最常见的字体了,但是往往在IE8+的浏览器上调试得很好,到了IE6则会变成默认的"宋体". 因为宋体字体宽度通常比雅黑的要宽,有时候会把页面都布局挤乱. 为了 ...