小编cod*_*nix的帖子

如何使用LINQ获取索引?

给定像这样的数据源:

var c = new Car[]
{
  new Car{ Color="Blue", Price=28000},
  new Car{ Color="Red", Price=54000},
  new Car{ Color="Pink", Price=9999},
  // ..
};
Run Code Online (Sandbox Code Playgroud)

如何用LINQ 找到满足一定条件的第一辆车的索引

编辑:

我可以想到这样的东西,但它看起来很糟糕:

int firstItem = someItems.Select((item, index) => new    
{    
    ItemName = item.Color,    
    Position = index    
}).Where(i => i.ItemName == "purple")    
  .First()    
  .Position;
Run Code Online (Sandbox Code Playgroud)

用一个普通的循环解决这个问题会是最好的吗?

.net c# linq c#-3.0

306
推荐指数
6
解决办法
33万
查看次数

使用vs2010将C++/CLI项目更改为4.0以外的另一个框架

自从我将项目升级到visual studio 2010项目格式后,我的C++/CLI项目就针对.net framework 4.0.

很容易将框架版本从C#项目切换到另一个版本,但我不知道如何在C++/CLI项目中执行此操作,我在项目属性页面中没有看到此设置.

.net c++-cli .net-4.0 visual-studio-2010 visual-studio

153
推荐指数
3
解决办法
7万
查看次数

如何为一个可能为空的对象做ToString?

有一种简单的方法可以执行以下操作:

String s = myObj == null ? "" : myObj.ToString();
Run Code Online (Sandbox Code Playgroud)

我知道我可以做到以下几点,但我真的认为它是一个黑客:

String s = "" + myObj;
Run Code Online (Sandbox Code Playgroud)

如果Convert.ToString()有一个适当的重载将是很好的.

.net c# string null object

84
推荐指数
5
解决办法
8万
查看次数

如何使用给定的Type对象调用泛型方法?

我想用给定的类型对象调用我的泛型方法.

void Foo(Type t)
{
     MyGenericMethod<t>();
}
Run Code Online (Sandbox Code Playgroud)

显然不起作用.

我怎样才能使它工作?

.net c# generics reflection types

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

将数据写入Excel时如何制作正确的日期格式

我使用office interop将DataTable导出到Excel文件.问题是,Excel不会识别日期,而是显示数字.在另一种情况下,我传递一个字符串,然后将其识别为日期.在这两种情况下,数据都搞砸了.

我尝试过NumberFormat @,它应该以文本格式存储单元格,但它也不起作用.

Application app = new Application();
app.Visible = false;
app.ScreenUpdating = false;
app.DisplayAlerts = false;
app.EnableAnimations = false;
app.EnableAutoComplete = false;
app.EnableSound = false;
app.EnableTipWizard = false;
app.ErrorCheckingOptions.BackgroundChecking = false; 

Workbook wb = app.Workbooks.Add(XlWBATemplate.xlWBATWorksheet);
Worksheet ws = (Worksheet)wb.Worksheets[1];

for (int j = 0; j < dt.Rows.Count; j++)
{
    for (int i = 0; i < dt.Columns.Count; i++)
    {
        Range rng = ws.Cells[j+2, i+1]as Range;
        rng.Value2 = dt.Rows[j][i].ToString();
        rng.NumberFormat = "@";
    }   
}           

wb.SaveAs(filename, Missing.Value, Missing.Value, Missing.Value, Missing.Value, …
Run Code Online (Sandbox Code Playgroud)

.net c# excel office-interop

35
推荐指数
3
解决办法
9万
查看次数

PHP:字符串索引

$ str [n]和$ str {n}之间有什么区别,因为$ str是一个字符串.

我注意到两者似乎都是一样的,除了{}在我找到的任何文档中都没有出现.

php string

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

为什么我不能初始化初始化程序中的只读变量?

为什么我不能初始化初始化程序中的只读变量?以下内容不起作用:

class Foo
{
    public readonly int bar;
}

new Foo { bar=0; }; // does not work
Run Code Online (Sandbox Code Playgroud)

这是由于CLR的某些技术限制吗?

编辑

我知道它new Foo { bar=0; }是相同的new Foo().bar=0;,但是CLR强制执行"readonly",还是仅仅是编译器限制?

.net c# initialization readonly c#-3.0

17
推荐指数
4
解决办法
1万
查看次数

了解Linux目录权限推理

嗨,我有2个关于Linux目录权限的问题,我不明白.

我从名为Documents的文件夹中删除了执行标志.之后,我不能使用cd,但我仍然可以从父目录中执行"ls Documents",它仍然会列出Documents目录中的文件.我虽然缺少x-flag否认阅读这个目录?

然后我想知道为什么目录上的粘性位被发明了.我听说它被使用,以便用户无法删除其他用户创建的临时文件.但是这个IMO违反了删除文件的规则,我们只需要这个目录的权限.为什么不简单地给每个用户一个单独的/ tmp /目录而不是在规则系统中引入异常?我知道国旗的作用,但我想知道为何发明的原因.

unix linux directory permissions

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

关于.NET 4.0文件系统枚举功能的奇怪之处

我刚看了一页"什么是新的.NET Framework 4.0".我无法理解最后一段:

删除枚举目录或文件上的打开句柄

  1. 创建自定义方法(或Visual Basic中的函数)以包含您的枚举代码.

  2. 将带有NoInlining选项的MethodImplAttribute属性应用于新方法.例如:

    [MethodImplAttribute(MethodImplOptions.NoInlining)] Private void Enumerate()

  3. 包含以下方法调用,以在枚举代码后运行:

      * The GC.Collect() method (no parameters).
      * The GC.WaitForPendingFinalizers() method.
    
    Run Code Online (Sandbox Code Playgroud)

为什么属性NoInlining?内联有什么危害吗?

为什么不手动调用垃圾收集器,为什么不首先使枚举器实现IDisposable?我怀疑他们使用FindFirstFile()/ FindNextFile()API调用进行实现,因此如果枚举完成,则必须在任何情况下调用FindClose().

编辑:

有没有人知道为什么在文章中建议使用NoInlining属性?

.net enumeration file .net-4.0 c#-4.0

16
推荐指数
1
解决办法
448
查看次数

组合List初始化器和对象初始化器

是否可以同时组合List初始化器和对象初始化器?给定以下类定义:

class MyList : List<int>
{
    public string Text { get; set; }
}

// we can do this
var obj1 = new MyList() { Text="Hello" };

// we can also do that
var obj2 = new MyList() { 1, 2, 3 };

// but this one doesn't compile
//var obj3 = new MyList() { Text="Hello", 1, 2, 3 };
Run Code Online (Sandbox Code Playgroud)

这是设计还是仅仅是c#编译器的错误或缺失功能?

.net c# object-initializers collection-initializer

16
推荐指数
1
解决办法
5898
查看次数