.NET知识点总结

简介:收集在项目或者练习当中对一些知识点

1、根据选择文件夹的路径获取该文件夹下后缀名为.txt文件

View Code
List<string> list = new List<string>();//文件名列表
List<string> pNamelist = new List<string>();//文件名绝对路径列表
/// <summary>
        /// 获取后缀为txt的文件名列表
        /// </summary>
        /// <param name="srcpath">txt文件的上级目录</param>
        /// <returns>返回相对路径下txt文件名的列表</returns>
        public List<string> GetFileList(string srcpath)
        {
            try
            {
                // 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组
                string[] filelist = System.IO.Directory.GetFileSystemEntries(srcpath);
                // 遍历所有的文件和目录
                int i=0;
                foreach (string file in filelist)
                {
                    // 先当作目录处理如果存在这个目录就重新调用getfileList(string srcpath)
                    if (System.IO.Directory.Exists(file))
                    {
                        GetFileList(file);
                    }
                    else
                    {
                        string[] fileNames = file.Split('\\');
                        string fileName = fileNames[fileNames.Length - 1];
                        if(fileName.Contains("XML") && fileName.Contains(".txt"))
                        {
                            list.Insert(i,fileName);//将txt文件名插入list列表中
                            pNamelist.Insert(i,file);//将对应的文件的绝对路径插入nNameList列表中
                            i++;
                        }
                    }
                    
                }

            }
            catch (Exception e)
            {
                
            }
            return list;
        }

2、打开选择文件夹的窗体:

 FolderBrowserDialog fbd = new FolderBrowserDialog();
            if (fbd.ShowDialog()==DialogResult.OK)
            {}

3、C#获取文件的各种路径:

4、string,String,Stringbuilder的区别:

(1)、string:表示文本(是C#中的类),是关键字,string不能作为类、结构、枚举、字段、变量、方法、属性的名称。

(2)、String:长度是不可变的(.NET Framework的类,静态数组类),可以作为类、结构、枚举、字段、变量、方法、属性的名称。

(3)、StringBuilder:长度是可变的,在C#程序当中需要对字符串进行修改,最好使用StringBuilder。

(4)、stirng和StringBuilder的区别:

  a、string a=“I am”; a=a+“Shang”;这两句代码并非改变了string的长度,而是重新创建了一个新的对象“a”,同时将第一次创建的对象“a”丢弃了,丢弃的“a”将被垃圾收集器收集掉。

  b、StringBuilder是专门用来对字符串和字符执行动态操作的类。

  StringBuilder a= new StringBuilder("I am"); a.Append("Shang");

  StringBuilder在内部有一个足够长的字符数组用于存放字符串对象,当字符串长度没超过字符数组长度时,所有操作都是针对同一个字符数组。当长度超过时,StringBuilder将自动创建一个更长的数组,把原来的数据复制到新数组中。

两者效率测试代码如下:

 

View Code
string a = "b";
            StringBuilder b = new StringBuilder();
            int i;

            //string
            DateTime dta0 = DateTime.Now;//string 开始变化前的时间
            for (i = 0; i <= 100000; ++i)
            {
                a += "b";
            }
            DateTime dta1 = DateTime.Now;//string 结束变化的时间
            TimeSpan tsa = dta1 - dta0;//计算出时间差

            Console.WriteLine("string变化的时间为:{0}", tsa.ToString());

            //StringBuilder
            DateTime dtb0 = DateTime.Now;//StringBuilder 开始变化前的时间
            for (i = 0; i <= 100000; ++i)
            {
                b.Append("a");
            }
            DateTime dtb1 = DateTime.Now;//StringBuilder 结束变化的时间
            TimeSpan tsb = dtb1 - dtb0;//计算出时间差

            Console.WriteLine("StringBuilder变化的时间为:{0}", tsb.ToString());

            Console.ReadLine();
参考结果:

 7、名词释义。

AutoEventWireup:指示控件的事件是否匹配。true:匹配,false:不匹配

 

 

6、数据控件GridView奇偶行显示不同的样式:

protected void gvNotification_RowDataBound(object sender, GridViewRowEventArgs e)
 {
       //设置奇偶行不同的背景色
     if (e.Row.RowType == DataControlRowType.DataRow)
     {
         if (e.Row.RowIndex % 2 == 0)
         {
              e.Row.Style.Add(HtmlTextWriterStyle.BackgroundColor, "#FFF3CA");
         }
         else
         {
             e.Row.Style.Add(HtmlTextWriterStyle.BackgroundColor, "#FFFFFF");
          }
     }

}

原文地址:https://www.cnblogs.com/Shang0109/p/2688831.html