C#文件和其它(210)

文件

File和FileInfo
Directory和DirectoryInfo
如果执行单一调用使用静态类
如果执行一系列调用使用Info类

new FileInfo(@"C:\Log.txt")使用@前缀表示字符按字面意义解释,没有的话就要用\\代替\了。

FileStream读写的是字节数组
StreamReader StreamWriter读写的是字符数组
字符和数组的转换用DecoderEncoder

文本格式

  1. XPath 用于检索xml的节点。

  2. 创建xml的话,我绝对linq的XDocument要比XmlDocument好用多了。

LINQ

它的实现是基于IEnumerable<T>接口,所以下面俩句是等效的。

1
2
3
string[] name = {"n1", "n2", "n3", "n4" };
var dd = name.Where(n => n.StartsWith("n"));
var hh = from n in name where n.StartsWith("n") select n;

orderby

暂时就个字母,其它排列再看看吧
var hh = from n in name where n.StartsWith("n") orderby n select n;升序排列结果
var hh = from n in name where n.StartsWith("n") orderby n descending select n;降序排列结果

多级排序,并返回新建立的对象。
1
2
3
var queryResults = from c in customers
orderby c.Region, c.Country descending, c.City
select new { c.ID, c.Region, c.Country, c.City };

查找不重复

会按照Region属性选出所有,Distinct来排除重复。

1
2
var qu = name.Select(c => c.Region).Distinct();
var qu = (from c in name select c.Region).Distinct();

分组查询

书上的例子是,按照国家来比较销量

1
2
3
4
5
6
7
var q =
from c in customers
group c by c.Region into cg
select new { TotalSaleds = cg.Sum(c => c.Sales), Region = cg.Key}
//第二句by后面指定重组使用的Key,再重新组合成cg(即后面cg.Key)
//第三句

join查询

书上的例子是把客户列表(customers)和订单列表(orders)中,id相同的找出重组合

1
2
3
4
var q =
from c in customers
join o in orders on c.ID equals o.ID
select new {c.ID, c.City};

// //