从两个枚举中,应用LINQ获取对的方法是什么
喜欢
{红,租车},{红,自行车},{绿,租车},{绿,自行车},...
public enum Color
{
Red,Green,Blue
}
public enum Vehicle
{
Car,Bike
}
Run Code Online (Sandbox Code Playgroud)
我可以使用类似的东西吗?
var query = from c in Enum.GetValues(typeof(Color)).AsQueryable()
from c in Enum.GetValues(typeof(Vehicle)).AsQueryable()
select new {..What to fill here?.. }
Run Code Online (Sandbox Code Playgroud) 允许使用网址中的"&"字符吗?如果url是非法的并且存在,对url有什么影响.我正在寻找SEO观点的答案.
例:
rootdomain.com/Black&Decker/products
我正在将一个C++程序转换为Java并完全停留在以下方法中,这让我大吃一惊.你愿意解释一下这种方法在做什么吗?
long TSBCA::GetSignedValue(const NDataString &value)
{
static NDataString s;
s = value;
long multiplier(1);
size_t len(s.Len());
if (len != 0)
{
if (s[0] >= (char)0xB0 && s[0] <= (char)0xB9)
{
s[0] &= 0x7F; //Bit Pattern: 0111 1111
multiplier = -1;
}
else if (s[len - 1] >= (char)0xB0 && s[len - 1] <= (char)0xB9)
{
s[len - 1] &= 0x7F; //Bit Pattern: 0111 1111
multiplier = -1;
}
else
multiplier = 1;
}
else
multiplier = 1;
return s.ToLong() * …Run Code Online (Sandbox Code Playgroud) 这是我对C#的第一次体验,也是我对正则表达式的有限经验的一部分,我在捕获特定表达式中第一次出现匹配时遇到问题.我相信下面的例子会比描述我想要做的事情更清楚.
Match extractor = (new Regex(@".*\d(?<name>.*)\d.*")).Match("This hopefully will pick up 1Bob9error1 as a name");
Console.WriteLine(extractor.Groups["name"]);
Run Code Online (Sandbox Code Playgroud)
我想用这个表达式打印"Bob"而不是"error".
我预感它有什么关系?在匹配组前面,但我不确定是什么操作的?在这种特殊情况下执行.一些解释和一些帮助将是美好的.
谢谢大家,你不知道这个网站对像我这样的初学程序员有多大帮助.
当我在我的类库中右键单击时,我会得到一些快速选项来创建内容,例如弹出列表中的项目(New Item ...),用户控件等.例如
alt text http://img44.imageshack.us/img44/6527/clipboard02vw.jpg
现在在我的Web应用程序项目中,我希望能够像在Component和Class中一样在右键菜单中列出用户控件,所以我不必单击New Item ...然后从那里选择它.
alt text http://img268.imageshack.us/img268/2563/clipboard01jo.jpg
有没有办法在配置中执行此操作?我似乎无法在VS中弄明白.
我希望能够在我的Control的代码中访问任何Form我的控件,所以像:
myControl.ParentForm
Run Code Online (Sandbox Code Playgroud)
这可能吗?如果是这样,怎么样?
我无法理解virtualC++中关键字的用途.我非常了解C和Java,但我是C++的新手
来自维基百科
在面向对象的编程中,虚函数或虚方法是一种函数或方法,其行为可以通过具有相同签名的函数在继承类中重写.
但是我可以在不使用virtual关键字的情况下覆盖如下所示的方法
#include <iostream>
using namespace std;
class A {
public:
int a();
};
int A::a() {
return 1;
}
class B : A {
public:
int a();
};
int B::a() {
return 2;
}
int main() {
B b;
cout << b.a() << endl;
return 0;
}
//output: 2
Run Code Online (Sandbox Code Playgroud)
如下所示,函数A :: a被成功覆盖了B :: a而不需要 virtual
令我困惑的是这个关于虚拟析构函数的陈述,也来自维基百科
如下例所示,对于C++基类来说,拥有一个虚拟析构函数以确保始终调用最派生类的析构函数非常重要.
那么virtual还告诉编译器调用父代的析构函数?这似乎与我原来的理解virtual"使功能可以覆盖" 非常不同
每当我在自己的代码中实现一个可以接受或返回多个类的对象的方法时,我总是尝试使用最具体的超类.例如,如果我要实现一个可能根据其输入返回NSArray*或NSDictionary*的方法,我会给该方法一个返回类型的NSObject*,因为那是最直接的常见超类.这是一个例子:
@interface MyParser()
- (BOOL)stringExpressesKeyValuePairs:(NSString *)string;
- (BOOL)stringExpressesAListOfEntities:(NSString *)string;
- (NSArray *)parseArrayFromString:(NSString *)string;
- (NSDictionary *)parseDictionaryFromString:(NSString *)string;
@end
@implementation MyParser
- (NSObject *)parseString:(NSString *)string {
if ([self stringExpressesKeyValuePairs:string]) {
return [self parseDictionaryFromString:string];
}
else if ([self stringExpressesAListOfEntities:string]) {
return [self parseArrayFromString:string];
}
}
// etc...
@end
Run Code Online (Sandbox Code Playgroud)
我已经注意到在Foundation和其他API中的许多情况,其中Apple在某些方法签名中使用(id)时(NSObject*)会更精确.例如,这是NSPropertyListSerialization的方法:
+ (id)propertyListFromData:(NSData *)data
mutabilityOption:(NSPropertyListMutabilityOptions)opt
format:(NSPropertyListFormat *)format
errorDescription:(NSString **)errorString
Run Code Online (Sandbox Code Playgroud)
此方法可能的返回类型是NSData,NSString,NSArray,NSDictionary,NSDate和NSNumber.在我看来,返回类型(NSObject*)将是一个比(id)更好的选择,因为调用者将能够调用NSObject方法,如retain而不使用类型转换.
我一般都试图模仿官方框架所建立的习语,但我也想了解是什么激励了他们.我确信Apple在这种情况下使用(id)有一些正当理由,但我只是没有看到它.我错过了什么?
我明白那个:
head (map (2**) [1..999999])
Run Code Online (Sandbox Code Playgroud)
实际上只会评估2**1,而其余的都没有,但我正在阅读的书中说:
head (sort somelist)
Run Code Online (Sandbox Code Playgroud)
只需要找到列表中最小的项目,因为这就是所有使用的项目.这是如何运作的?据我所知,使用我所知的排序算法(如冒泡排序)是不可能的.
我认为这样做的唯一方法是,如果排序算法要遍历整个列表,寻找最小的项目,然后在没有该项目的情况下递归列表.对我来说,这听起来很慢.
这是排序功能如何工作,还是有另一种我不知道的排序算法,可以像它一样短路?