博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
说说.NET中忽视的方法
阅读量:5887 次
发布时间:2019-06-19

本文共 3214 字,大约阅读时间需要 10 分钟。

.NET中有些方法以前没有接触过,但用过了之后让人眼前一亮,哇,原来你这么好用。

下面就说说被我忽视过的方法。当然,每个人的编程经历,涉猎面及对.NET的认知程度都不一样。所以,这只是一家之言,肯定有很多不足之处,欢迎大家批评指正。

1. ADO.NET类

DataTable.Merge()

如何合并两张表?自己以前写的方法:

private void UniteTable(DataTable sourceTable, DataTable targetTable)        {            foreach (DataRow row in sourceTable.Rows)            {                DataRow newRow = targetTable.NewRow();                //将sourceTable中row的值赋给对应的targetTable中的row                newRow["column1"] = row["column1"];                //...                targetTable.Rows.Add(newRow);            }        }

哎,这个方法很傻很天真吧,其实DataTable中早就提供了合并两张表的方法,就是DataTable.Merge()。合并两张表,只要一条语句就行:

targetTable.Merge(sourceTable);

 

DataRow.ItemArray

结构相同的情况下,如何将一行的值赋给另一行?自己以前都这样写:

DataRow row1 = table1.Rows[0];            DataRow row2 = table2.Rows[0];            row1["column1"] = row2["column1"];            row1["column2"] = row2["column2"];            //...

老天,要是有30多个列我可怎么办。其实DataRow有个ItemArray属性,只要一句话就完成了:

row1.ItemArray = row2.ItemArray;
SqlCommand.Parameters.AddWithValue()

SqlCommand执行存储过程的时候怎么增加参数,类似这样做就可以了:

//设置参数名和类型                cmd.Parameters.Add("@Target", SqlDbType.NChar);                cmd.Parameters.Add("@Description", SqlDbType.NChar);                cmd.Parameters.Add("@Actor", SqlDbType.NChar);                //给参数赋值                cmd.Parameters[0].Value = "ATarget";                cmd.Parameters[1].Value = "Description";                cmd.Parameters[2].Value = "Actor";
上面都分了两步,增加参数,然后再给参数赋值,其实我们可以一步到位的:
cmd.Parameters.AddWithValue("@Actor", "Actor");                cmd.Parameters.AddWithValue("@Target", "Target");                cmd.Parameters.AddWithValue("@Description", "Description");
 2. 集合类

List.AddRange()

怎么在List中怎样添加多个值,曾经的我是这样子的:

List
list = new List
(); list.Add(1); list.Add(2); list.Add(3); list.Add(4);
其实完全可以用一个方法就搞写,它就是AddRange().(在很多类中都有AddRange(),这里我只是用LIST来举例)
list.AddRange(new int[] { 1,2,3,4});List.Find()与List.FindAll()
在List中查找特定值?以前我都是这样做:
foreach (int i in list)            {                if (i == 3)                {                    Console.Write(i);                }            }
其实完全可以不用foreach循环,用Find()就可以很好的解决:(FindAll()与Find()用法相似)
int result = list.Find(delegate(int i) { return i == 3; });
 3 控件类

DataGridView.HitTest()

DataGridView中如何获取当前鼠标位置所在的行数与列数?我认为DataGridView会有这样的方法,但找了很久都没找到。终于工夫不负有心人,在VS智能提示下点点终于找到了。只怪这坑爹的命名HitTest?为毛不是Get,Find,Index之类开头啊。返回值还是一个内部类:DataGridView.HitTestInfo

//捕获鼠标点击区域的信息            DataGridView.HitTestInfo hitTestInfo= this.sourceGrid.HitTest(e.X, e.Y);            //获取所在行数            int rowIndex = hitTestInfo.RowIndex;            //获取所在列数            int columnIndex = hitTestInfo.ColumnIndex;ListBox.IndexFromPoint()

 

同样的,ListBox也有一个根据Point来获取行数的方法,即IndexFromPoint().你看,这个命名好多了:

// Get the index of the item the mouse is below.           indexOfItemUnderMouseToDrag = ListDragSource.IndexFromPoint(e.X, e.Y);

 

4.其它

进制转换.

以前做进制转换,比如十六进制转八进制,还自己写过一个独立的方法。坑爹的,其实远不用这么麻烦,Convert.ToInt32()与string.Format()都有提供重载方法来实现:

//将十六进制“10”转换为十进制i            int i = Convert.ToInt32("10", 16);            //将十进制i转换为十六进制s            string s = string.Format("{0:X}", i);

 

PS.我这里只提供示例,关于上面提到方法的详细应用大家可以自行百度。

转载地址:http://nigix.baihongyu.com/

你可能感兴趣的文章
计算机java语言答案_【计算机考试】JAVA语言,求答案!!!
查看>>
java web session管理_Java Web之会话管理二:Session
查看>>
java 面向对象基本概念_Java面向对象-面向对象编程之基本概念
查看>>
java数值保留2位小数_java中如何使Double类型的数值保留两位小数问题
查看>>
java基础包括哪些内容_Java基础课程内容有哪些?
查看>>
java跨行_小白跨行学习Java的辛酸路程
查看>>
mysql5.7 外键错误_mysql5.7 创建表外键失败 求看下!!!! 折磨我一天了?
查看>>
python asyncio文件操作_Python中使用asyncio封装文件读写详解及实例
查看>>
java邮件数据库_java 发送数据库查询的数据作为excel表格邮件
查看>>
画图程序 java_一个JAVA画图程序
查看>>
java深度解析 pdf_这一份Spring源码解析PDF,阿里架构师直言:全网最深度解析!...
查看>>
为什么java类中可以创建实例_java – 为什么我出乎意料地能够创建我的单例类的多个实例?...
查看>>
将java与sql相连_JAVA与数据库MySQL相连接
查看>>
bean包 java_BeanUtils工具包操作JavaBean
查看>>
pythonweb自动化如何定位div标签定位div表情_基于Python的Web自动化(Selenium)之元素定位...
查看>>
java jdk-8u152_jdk-8u152-macosx-x86_64-demos java 1.8 代码大全 - 下载 - 搜珍网
查看>>
java反序列化漏洞POP查找_Java反序列化漏洞:在受限环境中从漏洞发现到获取反向Shell...
查看>>
php数组分行输出json_php数组输出这样的json
查看>>
单调队列 笔记
查看>>
8月3号__学习报告
查看>>