随笔分类 -  C#语言

摘要:今晚遇到一个很奇怪的事情,我已经把所有数据拿出来了,然后在后台用C#代码根据业务对数据进行处理,大抵都是用linq进行一些where、any、select的处理,中间还夹杂着两三个foreach,结果当数据稍微多一点,直接卡死!一步步地把觉得可能会耗性能的操作都注释,最后发现一个只有一条数据的Enumerable变量,在做.Any()判断时,都耗时0.5秒左右!顿时崩溃……最后把所有需要处理的数据ToList一下,OK,收工!没有写ToList操作,是因为前阵子看了网上有人说ToList耗性能,So……不过想了想,其实是自己理解不到位呀。在不需要对Where出来的数据进行操作时,直接使用Enu 阅读全文
posted @ 2013-12-10 21:28 One Ivan 阅读(21734) 评论(0) 推荐(0)
摘要:很久没用了,基本忘了啊。在园子里找到的一篇文章,挺通俗易懂的,标记一下:Linq to DataSet 阅读全文
posted @ 2012-12-14 11:28 One Ivan 阅读(141) 评论(0) 推荐(0)
摘要:C# Tostring() 格式大全 [转]一、数字 ToStringC货币2.5.ToString("C")¥2.50D十进制数25.ToString("D5")00025E科学型25000.ToString("E")2.500000E+005F固定点25.ToString("F2")25.00G常规2.5.ToString("G")2.5N数字2500000.ToString("N")2,500,000.00X十六进制255.ToString("X") 阅读全文
posted @ 2012-03-08 12:08 One Ivan 阅读(469) 评论(0) 推荐(0)
摘要:一个经常碰到的笔试题:一堆小朋友,共有N个,围成一个圈,每个小朋友递增地编号,1,2,3,4,......现在,从第一个小朋友开始计数,每数到3的小朋友站出来离开,然后从下一个小朋友开始计数。直到所有的小朋友离开,求小朋友离开的顺序编号。例如:1 2 3 4【第一次3离开】剩下 1 2 4【第二次2离开】剩下 1 4【第三次4离开】剩下 1........下面以苹果代替小朋友,数到3的苹果被吃掉,输出被吃的苹果的编号。先创建一个苹果结点类Apple.cs 1 using System; 2 using System.Collections.Generic; 3 using System.Tex 阅读全文
posted @ 2012-02-10 15:22 One Ivan 阅读(2854) 评论(3) 推荐(1)
摘要:以一个类来定义结点类,其中包含结点数据值,前结点,后结点(双向链表的情况有前、后结点)。using System;using System.Collections.Generic;using System.Text;namespace Csharp{ public class Node<T> where T : IComparable<T> { T data; /// <summary> /// the current data /// </summary> public T Data { ... 阅读全文
posted @ 2012-02-09 17:55 One Ivan 阅读(506) 评论(0) 推荐(0)
摘要:很简单的一个例子,先记着,怕忘了这个方法。例子是用VS2003做的,可能有些出入。View Code using System;using System.Text;namespace ASCIIEncodingDemo{ /// <summary> /// Class1 的摘要说明。 /// </summary> class Class1 { /// <summary> /// 应用程序的主入口点。 /// </summary> [STAThread] static void Main(stri... 阅读全文
posted @ 2012-01-12 09:51 One Ivan 阅读(476) 评论(0) 推荐(0)
摘要:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Security.Cryptography;using System.IO;namespace EncryptDemo{ class Program { static void Main(string[] args) { // Create a new DES key. DESCryptoServiceProvider ke... 阅读全文
posted @ 2012-01-11 16:32 One Ivan 阅读(3822) 评论(0) 推荐(0)
摘要:上一篇写了一下装箱拆箱的定义和IL分析,这一篇我们看下使用泛型和不使用泛型引发装箱拆箱的情况1. 使用非泛型集合时引发的装箱和拆箱操作看下面的一段代码:1var array =newArrayList();2array.Add(1);3array.Add(2);45foreach(intvalueinarray)6{7Console.WriteLine(“valueis{0}”,value);8}代码声明了一个ArrayList对象,向ArrayList中添加两个数字1,2;然后使用foreach将ArrayList中的元素打印到控制台。在这个过程中会发生两次装箱操作和两次拆箱操作,在向Arr 阅读全文
posted @ 2011-10-19 21:25 One Ivan 阅读(190) 评论(0) 推荐(0)
摘要:装箱和拆箱是值类型和引用类型之间相互转换是要执行的操作。1. 装箱在值类型向引用类型转换时发生2. 拆箱在引用类型向值类型转换时发生光上述两句话不难理解,但是往深处了解,就需要一些篇幅来解释了。我们先看装箱时都会发生什么事情,下面是一行最简单的装箱代码objectobj = 1;这行语句将整型常量1赋给object类型的变量obj; 众所周知常量1是值类型,值类型是要放在栈上的,而object是引用类型,它需要放在堆上;要把值类型放在堆上就需要执行一次装箱操作。这行语句的IL代码如下,请注意注释部分说明:.locals init ([0]objectobjValue)//以上三行IL表示声明o 阅读全文
posted @ 2011-10-19 21:18 One Ivan 阅读(289) 评论(0) 推荐(0)