小编Jim*_*ter的帖子

使用Lambda/Linq对列表对列表进行排序

我在字符串中有"按属性排序"的名称.我将需要使用Lambda/Linq对对象列表进行排序.

例如:

public class Employee
{
  public string FirstName {set; get;}
  public string LastName {set; get;}
  public DateTime DOB {set; get;}
}


public void Sort(ref List<Employee> list, string sortBy, string sortDirection)
{
  //Example data:
  //sortBy = "FirstName"
  //sortDirection = "ASC" or "DESC"

  if (sortBy == "FirstName")
  {
    list = list.OrderBy(x => x.FirstName).toList();    
  }

}
Run Code Online (Sandbox Code Playgroud)
  1. 而不是使用一堆ifs来检查fieldname(sortBy),是否有更简洁的方法进行排序
  2. 排序是否知道数据类型?

c# linq lambda linq-to-objects

264
推荐指数
9
解决办法
47万
查看次数

如何在C#中使用"using"捕获异常

鉴于此代码:

using (var conn = new SqlConnection("..."))
{
    conn.Open();
    using (var cmd = conn.CreateCommand())
    {
        cmd.CommandText = "...";
        using (var reader = cmd.ExecuteReader())
        {
            while (reader.Read())
            {
                // ...
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我习惯于为我的数据访问编写try/catch/finally块,但是,我正在接触"使用",这似乎是一种更简单的方法.但是,我试图弄清楚如何捕获可能发生的异常.

能否请您举例说明您如何捕捉异常?

编辑添加:

我被引导相信"使用"是我的try/catch/finally块的替代品.我知道使用不会捕获异常.那怎么替代呢?

c# sql ado.net

32
推荐指数
6
解决办法
4万
查看次数

如果您的堆栈和堆不可执行,您的代码如何运行?

我读了一本关于缓冲区溢出的书,它建议下一步处理:

使堆栈(和堆)不可执行可以为现有程序提供高度保护,防止多种类型的缓冲区溢出攻击.

但我不明白我们怎么做 - 执行会发生在哪里,如果不在堆上或堆栈上?

c security buffer-overflow

24
推荐指数
2
解决办法
1万
查看次数

当b为零时,为什么%b会产生SIGFPE?

今天我在我刚写的一些代码中追踪浮点异常.它需要一段时间才能找到,因为它实际上是由整数模零点引起的.显然做任何mod零的事情都不会被定义,但我认为错误是如此误导是很奇怪的.在C++模运算符中,它将使用两个整数的浮点数是什么?(我正在使用gcc 4.3.2)

这是一个演示错误的简单程序.

int main()
{
    int a=3,b=0;
    int c=a%b;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c++

22
推荐指数
2
解决办法
2万
查看次数

直接内存访问DMA - 它是如何工作的?

我读到如果DMA可用,那么处理器可以将磁盘块的长读或写请求路由到DMA并专注于其他工作.但是,在此传输过程中,DMA到内存数据/控制通道正忙.处理器在此期间还能做些什么?

hardware processor dma

15
推荐指数
1
解决办法
2万
查看次数

是否可以仅使用+ =和 - =交换两个变量?没有其他运算符或变量?

我想交换两个变量,只有+=-=运营商,没有临时变量.我知道标准解决方案如:

a = a+b;
b = a-b;
a = a-b;
Run Code Online (Sandbox Code Playgroud)

并与xor:

a ^= b;
b ^= a;
a ^= b;
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何只用+=-=.可能吗?

c swap

14
推荐指数
1
解决办法
410
查看次数

什么是文件孔以及它如何使用?

根据我的理解,漏洞可能在inode中保存为元数据,但实际磁盘未填充空零.

  1. 有人可以解释现实生活中的用例,文件中的漏洞是否有用?

  2. 孔是否与预分配相同?从diskusage的角度来看,即使没有使用实际磁盘空间,但该空间也不可用于其他进程.

linux filesystems file

9
推荐指数
1
解决办法
8808
查看次数

Objective C中的"fabs"是什么?

发现这段代码......

if(fabs([tempPlacemark getCoordinate].latitude-latitude) < latDelta && fabs([tempPlacemark getCoordinate].longitude-longitude)<longDelta )
...
Run Code Online (Sandbox Code Playgroud)

在Math.h中引用它:

extern float fabsf(float);
extern double fabs(double);
extern long double fabsl(long double);
Run Code Online (Sandbox Code Playgroud)

那我在看什么?

c objective-c

6
推荐指数
1
解决办法
7419
查看次数

scala中的val如何与java中的const不同?

任何人都在关注scala中的val与java中的const有何不同?
有哪些技术差异?我相信我理解c ++和java中的"const"是什么.我觉得"val"在某种程度上是不同的和更好的,但我不能把手指放在它上面.谢谢

java scala const

6
推荐指数
2
解决办法
2821
查看次数

GDB:仅当前一个中断在func2上时才会中断func1

我有两个功能,func1并且func2,各设置了断点.

func2如果前一个断点命中,是否有可能让GDB在断点处停止func1

c c++ gdb

5
推荐指数
1
解决办法
95
查看次数