阅读量:0
一、string
1.常见用法
string s = "我是一个字符串"; Console.WriteLine(s.Length);//输出长度7 Console.WriteLine(s.IndexOf("是"));//输出索引1 Console.WriteLine(s.Replace("是", "不是"));//后代前,输出“我不是一个字符串” Console.WriteLine(s.Substring(4, 3));//切片输出“字符串”(第4开始长度为3) Console.WriteLine(s.Substring(2));//切片输出“一个字符串”(第2开始到结束) bool b= s.Contains("一个");//字符串s,是否含有 “一个” bool b2=s.StartsWith("一个") ;// 字符串s,是否以 “一个”开头 bool b3=s.EndsWith("一个") ;// 字符串s,是否以 “一个”结尾
2.Trim去除字符串
去除多余字符时,字符字面量中的字符太多:
data.TrimStart('ABC');
改为:
data.TrimStart("ABC".ToCharArray());
3.Contains方法混淆
是mainString.Contains(subString),例子如下所示:
Console.WriteLine("P业务经理".Contains("P领域主管,P项目成员,P业务经理"));//返回False Console.WriteLine("P领域主管,P项目成员,P业务经理".Contains("P业务经理"));//返回True
4.Split劈分字符串
string s = "Hello,World,How,Are,You"; string[] words = s.Split(','); Console.Write(words[1]);//输出World
二、Double
1.计算结果为0
当b和c都是int类型时,如b=1 c=10,则a=0
double a= b/c ;
若使得a=0.1,需改成:
double a= (double)b/c ;
三、TimeSpan
1.兼容LINQ中的Sum方法
LINQ不支持TimeSpan用Sum方法,例如以下list的Time的类型是TimeSpan,以下代码会报错:
list.Sum(x => x.Time).TotalHours
可以转化一下,先求出毫秒总和,然后再化为TimeSpan形式,求出TotalHours(或者其余需要的变量):
TimeSpan.FromMilliseconds(list.Sum(x => x.Time.Value.TotalMilliseconds)).TotalHours
四、Tuple
实现值的快速交换:
int a = 1; int b = 100; (a, b) = (b, a);//交换 Console.WriteLine(a);//100 Console.WriteLine(b);//1
零、其余小结
1.问号的两种用法
//1.有关空 string text = null;//text不为空才点出Length,如果为空则输出123 Console.WriteLine(text?.Length.ToString() ?? "123"); //2.三元运算符 string result = (text == "1") ? "text等于1" : "text不等于1"; Console.WriteLine(result);
2.判断入参类型
public object GetTypeCode(object obj) { if (obj is float)//如果传参是浮点型 { return "abc";//返回字符串abc } else if (obj is double)//如果传参是双精度浮点型 { return 2;//返回整型2 } else { // 如果传入的类型不是float或double,则返回null或其他你认为合适的值 return null; } }
3.拓展方法
【注意】不要和原有方法重名,否则优先执行原有方法!以下是string的拓展方法。
public static class ExpandMethod//扩展方法类名是任意起的,public static固定不变 { public static bool EqualsAAA(this String data)//方法名是任意起的,public static固定不变,第一个参数是:this+被扩展类型+内容参数 { //若有入参(this String data,int a,sting b) if (data.Equals("AAA")) { return true; } return false; } } class MainClass//新建一个类,在这个类中可调用写好的扩展类下的扩展方法 { static void Main(string[] args) { Console.WriteLine("a".EqualsAAA());//调用扩展方法,返回False Console.WriteLine("as".EqualsAAA());//返回False Console.WriteLine("AAA".EqualsAAA());//返回True } }