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

Ex:

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();    
  }

}

与其使用一堆if来检查字段名(sortBy),还有一种更干净的排序方式吗 排序是否知道数据类型?

在我们的一个项目中,有很多代码看起来像这样:

internal static class Extensions
{
    public static string AddFoo(this string s)
    {
        if (s == null)
        {
            return "Foo";
        }

        return $({s}Foo);
    }
}

除了“以后更容易将类型公开”之外,还有其他明确的原因吗?

我怀疑它只在非常奇怪的边缘情况下(在Silverlight反射)或根本不重要。

我在回答另一个问题时看到了一个有趣的技巧,我想更好地理解它。

给定一个无符号64位整数,我们感兴趣的是以下位:

1.......2.......3.......4.......5.......6.......7.......8.......

具体来说,我们希望将它们移到前8位,如下所示:

12345678........................................................

我们不关心由。表示的位的值,它们也不需要被保存。

解决方案是屏蔽不需要的位,并将结果乘以0x2040810204081。事实证明,这是有效的。

这个方法有多普遍?这种技术可以用来提取比特的任何子集吗?如果不是,如何确定该方法是否适用于特定的比特集?

最后,如何找到(a?)正确的乘数来提取给定的比特?

例如,乘法和除法可以使用位运算符来实现

i*2 = i<<1
i*3 = (i<<1) + i;
i*10 = (i<<3) + (i<<1)

等等。

用say (i<<3)+(i<<1)乘10是否比直接用i*10更快?有没有什么输入是不能用这种方法乘或除的?

我在GitHub上有一个私人存储库,我想让它公开。但是,一些初始提交包含我不想公开的信息(硬编码的凭证等)。

在不包含部分或全部提交历史的情况下,使最近的提交公开(我真的不需要或不希望在公共存储库中保存以前的提交)的最简单方法是什么?

假设我有一个大小为N的数组(其中N > 0),是否有一种更有效的方法来预挂数组,不需要O(N + 1)步?

在代码中,本质上,我现在做的是

function prependArray(value, oldArray) {
  var newArray = new Array(value);

  for(var i = 0; i < oldArray.length; ++i) {
    newArray.push(oldArray[i]);
  }

  return newArray;
}

情况是这样的:

I am programming Xcode whilst concurrently listening to music on my Bluetooth headphones... you know to block out the world. Then, I go to launch my app in the iOS simulator and BOOM all of a sudden my crystal clear music becomes garbled and super low quality like it is playing in a bathtub 2 blocks away... in the 1940s. Note: the quality deterioration does NOT occur if I am playing music on my laptop or cinema display and I launch the sim. It seems to be exclusively a Sim -> Bluetooth issue.

这个问题不仅仅是烦人。因为通常在停止模拟器后,蹩脚的浴缸质量的音乐继续。为了解决这个问题,我必须在OSX中打开声音偏好设置,然后短暂地切换回笔记本电脑的声音,然后切换回蓝牙耳机的声音。

这是一件大事,因为我每天都要启动模拟器50次,每次都要做这种切换,还要听40年代的单声道业余广播质量的音乐。

请注意,我使用的耳机是Plantronics BackBeat Pro,我的固件是最新的。我在OSX 10.11.4和Xcode 7.3…但这个问题在所有版本中都存在了2年多。你能把我从40年代救出来吗?

Ruby的例子:

name = "Spongebob Squarepants"
puts "Who lives in a Pineapple under the sea? \n#{name}."

成功的Python字符串连接对我来说似乎很冗长。

我有一个类项目与属性(Id,名称,代码,价格)。

项目列表中填充了重复的项目。

为例:

1         Item1       IT00001        $100
2         Item2       IT00002        $200
3         Item3       IT00003        $150
1         Item1       IT00001        $100
3         Item3       IT00003        $150

如何使用linq删除列表中的重复项?

我试图寻找一个关于减少回购大小的好教程,但没有找到。我如何减少我的回购规模…它大约是10 MB,但问题是Heroku只允许50 MB,我还没有完成我的应用程序的开发。

我已经添加了通常的嫌疑(日志,供应商,文档等)到。gitignore。虽然我最近才添加了。gitignore。

有什么建议吗?