问题列表 - 第4505页

将IEnumerable <T>转换为T []的最佳方法

从通用IEnumerable<T>实现转换为T数组的最佳方法是什么?我目前的解决方案如下所示:

IEnumerable<string> foo = getFoo();
string[] bar = new List<string>(foo).ToArray();
Run Code Online (Sandbox Code Playgroud)

通过一个List<T>似乎不必要的转移,但我还没有找到一个更好的方法来做到这一点.

注意:我在这里使用C#2.0.

arrays collections ienumerable .net-2.0 c#-2.0

8
推荐指数
2
解决办法
9364
查看次数

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

如何让python优雅地失败?

我只是想知道如何在所有可能的错误中以用户定义的方式使python失败.

例如,我正在编写一个处理(大)项目列表的程序,而某些项目可能不是我定义的格式.如果python检测到错误,它当前只会发出一个丑陋的错误消息并停止整个过程.但是,我希望它只是将错误输出到某个地方以及某些上下文,然后转到下一个项目.

如果有人可以帮助我,我将不胜感激!

非常感谢!

贾森

python

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

更改UIBackButtonItem标题

我有一个基于navigationController的应用程序.我想更改根视图控制器的后退按钮的标题.我在rootViewController的viewDidLoad方法中尝试了以下代码,但没有成功:

self.navigationItem.backBarButtonItem.title = @"Back";
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

cocoa-touch

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

通过忽略某些字符来比较两个字符串

我想知道是否有一种简单的方法可以通过排除字符串中的某些字符来检查两个字符串是否匹配.见下面的例子.

我可以通过编写正则表达式来查找"通配符"字符,并用常用字符替换它们,从而轻松编写这样的方法.然后比较两个字符串str1和str2.我不是在寻找这样的实现,而是想知道是否有任何.Net框架类可以解决这个问题.似乎是一种常见的需求,但我找不到任何这样的方法.

例如:

string str1 = "ABC-EFG";    
string str2 = "ABC*EFG";
Run Code Online (Sandbox Code Playgroud)

必须声明两个字符串相等.

谢谢!

c# string

3
推荐指数
2
解决办法
4259
查看次数

事实检查:.NET应用程序对反编译有多脆弱?

我在MSMobiles.com博客上发现了这篇帖子,其中包括以下内容:

.Net在很多方面都很棒,但对于商业应用呢?没门!任何人都可以查看您的源代码.高端混淆器可以提供很多帮助,但任何坚定的黑客都会在不到一天的时间内修复您的代码.尽管花费1000美元用于反盗版和混淆工具,但我从悲伤的经历中知道这一点.

然后说明如何在.NET中开发商业Windows Mobile应用程序:

准备好延迟1天,之后您的竞争对手将复制您的功能,并在Skymarket中使用相同的功能放置自己的应用程序

对于那些熟悉.NET的人:这是真话还是废话?这个问题是否以某种方式特定于Windows Mobile,还是适用于Windows上的.NET?这对我来说似乎很令人惊讶,因为我知道微软在.NET中编写了大量自己的客户端软件(许多供应商用Java编写昂贵的应用程序,显然存在相同的问题),而且他们看起来很奇怪IP可能很容易被窃取.

.net decompiling disassembly

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

自动获取博客供稿网址

给定博客URL,获取其RSS源URL.我知道这个问题在这里被问到,但我正在寻找一个独立于框架的算法,但是我更喜欢C#中的代码.

c# rss

0
推荐指数
1
解决办法
203
查看次数

为什么需要虚拟机?

我正在阅读这个问题,以找出Java虚拟机和.NET CLR之间的差异,Benji的回答让我想知道为什么虚拟机首先是必要的.

根据我对Benji的解释的理解,虚拟机的JIT编译器将中间代码解释为在CPU上运行的实际汇编代码.它必须这样做的原因是因为CPU通常具有不同数量的寄存器,并且根据Benji的说法,"一些寄存器是特殊用途的,并且每个指令都要求其操作数在不同的寄存器中." 这是有道理的,因此需要像虚拟机这样的中间解释器,以便可以在任何CPU上运行相同的代码.

但是,如果是这种情况,那么我不明白为什么编译成机器代码的C或C++代码能够在任何计算机上运行,​​只要它是正确的操作系统.那么为什么我在使用Pentium的Windows机器上编译的C程序能够在我使用AMD的其他Windows机器上运行?

如果C代码可以在任何CPU上运行,那么虚拟机的目的是什么?是否可以在任何操作系统上运行相同的代码?我知道Java在几乎任何操作系统上都有VM版本但除了Windows之外还有其他操作系统的CLR吗?

或者还有其他我想念的东西?操作系统是否对其运行的汇编代码做了一些其他解释,以使其适应特定的CPU或其他东西?

我很好奇这一切是如何运作的,所以我们将非常感谢一个明确的解释.

注意:我之所以不在JVM与CLR问题中发表我的查询作为评论的原因是因为我没有足够的积分发表评论但= b.

编辑:感谢所有的好答案!所以我似乎缺少的是,虽然所有处理器都有差异,但是有一个共同的标准化,主要是X86架构,它提供了足够大的通用功能集,因此在一个X86处理器上编译的C代码将在大多数情况下工作在另一个X86处理器上.这进一步推动了虚拟机的正当性,更不用说我忘记了垃圾收集的重要性.

compiler-construction vm-implementation

26
推荐指数
4
解决办法
3949
查看次数

使用公共接口和内部类型参数的泛型

我有以下情况:

// A public interface of some kind   
public interface IMyInterface {   
    int Something { get; set; }   
}   

// An internal class that implements the public interface.   
// Despite the internal/public mismatch, this works.   
internal class MyInternalConcrete : IMyInterface {   
    public int Something { get; set; }   
}   

// A generic class with an interface-restricted type parameter.
// Note that the constraint on T uses the *public* interface.
// The instance is *never* exposed as a public, or even …
Run Code Online (Sandbox Code Playgroud)

.net c# generics interface

0
推荐指数
2
解决办法
3383
查看次数

什么是当前流行的Java SIP库?

我正在开发Java中的SIP应用程序,并想知道目前最常用的SIP库是什么.

MJSIP?

java sip

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