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()方法

  • 相关阅读:
    BZOJ 3506 机械排序臂 splay
    BZOJ 2843 LCT
    BZOJ 3669 魔法森林
    BZOJ 2049 LCT
    BZOJ 3223 文艺平衡树 splay
    BZOJ 1433 假期的宿舍 二分图匹配
    BZOJ 1051 受欢迎的牛 强连通块
    BZOJ 1503 郁闷的出纳员 treap
    BZOJ 1096 ZJOI2007 仓库设计 斜率优化dp
    BZOJ 1396: 识别子串( 后缀数组 + 线段树 )
  • 原文地址:https://www.cnblogs.com/log-long/p/3260391.html
Copyright © 2011-2022 走看看