zoukankan      html  css  js  c++  java
  • .net开发几个不错的小建议

    --使用查询表达式代替循环

    1.生成前100个完全平方数:
    var squares = Enumerable.Range(1, 100).Select(x => x * x);
    返回int数组:squares.ToArray();
    返回List<int>集合:squares.ToList();
    2.对集合foos中每个元素执行DoSomething()成员方法:
    foos.ForEach(x => x.DoSomthing());
    3.选出foos中大于100的元素:
    var q = foos.Where(x => x > 100);
    4.points中点按到原点距离排序:
    var q = points.OrderBy(x => x.DistTo(new Point(0, 0)));
    5.foos中平方最小的数:
    double minSq = foos.Min(x => x * x);
    double min = foos.Distinct().Single(x => x * x == minSq);
    6.foos中的数是否有大于100的(是否都大于100)
    bool result= foos.Any(x=>x>100);
    bool result= foos.All(x=>x>100);

    --返回多个值
    在Matlab中可以用矩阵返回多个值,这就是元组(Tuple)的概念。当函数需要返回多个值时,应当使用元组而不是使用输出参数。.NET 4.0中提供了

    Tuple泛型类,位于System命名空间。在3.5以下版本可以考虑自己实现。

    public class Tuple<T1, T2>
    {
        private T1 _item1;
        private T2 _item2;

        public T1 Item1 { get { return _item1; } }
        public T2 Item2 { get { return _item2; } }

        public Tuple(T1 item1, T2 item2)
        {
            _item1 = item1;
            _item2 = item2;
        }
    }

    public class TupleList<T1, T2> : List<Tuple<T1, T2>>
    {
        public void Add(T1 item1, T2 item2)
        {
            base.Add(new Tuple<T1, T2>(item1, item2));
        }
    }

       -- 使用虚函数和多态而不是频繁使用引用转换
       -- 创建枚举0值表示未初始化、无效、未指定或默认
       -- 总是在派生类构造函数的初始化列表中列出所有基构造函数
       -- 总是重写ToString()方法

  • 相关阅读:
    CenOS下搭建PPTP服务
    Nginx做反向代理总是被系统kill
    python排序算法
    linux系统中rsync+inotify实现服务器之间文件实时同步
    HDU
    BZOJ1237: [SCOI2008]配对
    BZOJ2243: [SDOI2011]染色
    BZOJ3192: [JLOI2013]删除物品
    点分治小结
    AtCoder Beginner Contest 124 解题报告
  • 原文地址:https://www.cnblogs.com/log-long/p/3260391.html
Copyright © 2011-2022 走看看