如何使用字典值获取字典键?
当使用密钥获取值时,如下所示:
Dictionary<int, string> dic = new Dictionary<int, string>();
dic.Add(1, "a");
Console.WriteLine(dic[1]);
Console.ReadLine();
Run Code Online (Sandbox Code Playgroud)
如何做相反的事情?
我想创建一个创建数据库的SQL脚本.现在,我有这个:
CREATE DATABASE [Documents] ON PRIMARY
( NAME = N'Documents', FILENAME = N'Documents.mdf')
LOG ON
( NAME = N'Documents_log', FILENAME = N'Documents_log.ldf')
COLLATE SQL_Latin1_General_CP1_CI_AS
Run Code Online (Sandbox Code Playgroud)
但是,这会生成以下错误:
Msg 5105, Level 16, State 2, Line 2
A file activation error occurred. The physical file name 'Documents.mdf' may be incorrect. Diagnose and correct additional errors, and retry the operation.
Msg 1802, Level 16, State 1, Line 2
CREATE DATABASE failed. Some file names listed could not be created. Check related errors.
Run Code Online (Sandbox Code Playgroud)
我知道问题是我没有为文件名指定完全限定的路径.但我想能够运行此脚本,无论数据库服务器的目录结构如何.有没有办法使用默认路径?
是否有一种跨浏览器方法将一些内容附加<div>到底部?一个难点是<div>可以应用任意高度,但我希望某些内容始终粘在它的底部.
这可以在过去的糟糕时期完成,如下所示:
<table style="height: foo;">
<tr><td valign="top">content</td></tr>
<tr><td valign="bottom">stuck to the bottom</td></tr>
</table>
Run Code Online (Sandbox Code Playgroud)
我可以不借助这种技术吗?
我是非英语母语人士,并试图更好地理解该设计模式,我对命名模式的那个词的起源感兴趣.这个名字有什么动机?
据我所知,flyweight设计模式涉及使用共享支持大量细粒度对象的方法.
但是,我发现的特定单词(轻量级)的定义是指重量小于112磅的拳击类别.
那么,为什么以这种方式调用模式呢?
对不起,如果这看起来很愚蠢,但我真的不知道.
是否有一个简单的内置方法来获取IEnumerables 的有序列表并返回一个单元IEnumerable,它按顺序产生第一个中的所有元素,然后是第二个,依此类推.
我当然可以写自己的,但我想知道在我做之前是否已经有办法完成这个看似有用的任务.
根据as运营商的文档,as"用于在兼容的参考类型之间执行某些类型的转换".由于Nullable 实际上是一个值类型,我希望as不会使用它.但是,此代码编译并运行:
object o = 7;
int i = o as int? ?? -1;
Console.WriteLine(i); // output: 7
Run Code Online (Sandbox Code Playgroud)
这是正确的行为吗?文件是as错的吗?我错过了什么吗?
我一直在关注C#6中添加的安全导航操作员功能.我一直期待它.但我发现了一些与我预期不同的行为.我意识到我真的不明白它是如何运作的.
鉴于这门课程
class Foo {
public int? Measure;
}
Run Code Online (Sandbox Code Playgroud)
这是使用new运算符的一些代码.
Foo f = new Foo { Measure = 3 };
Console.WriteLine(f?.Measure); // 3
f = new Foo { Measure = null };
Console.WriteLine(f?.Measure); // null
f = null;
Console.WriteLine(f?.Measure); // null
Run Code Online (Sandbox Code Playgroud)
到目前为止,一切都按预期工作. ?.当左侧不为null时访问成员,否则返回null.但是这里的事情朝着一个我没想到的方向发展.
var i = f?.Measure; // i is Nullable<int>
Console.WriteLine(i.HasValue); // false
Console.WriteLine(f?.Measure.HasValue); // null
Run Code Online (Sandbox Code Playgroud)
什么?
为什么我可以HasValue从中获得i,但不能从我指定的相同表达式中获取i?怎么可能HasValue是null?
编辑:我真正的问题是关于程序行为,而不是编译错误.我删除了有关编译的额外内容,并更加狭隘地将这个问题集中在为什么两个不同的结果被看似相同的逻辑返回.
并感谢您的帮助.
我如何从一个未知的Generic.List类型的方法返回.
public void Main()
{
List<A> a= GetData("A");
}
public List<T> GetData(string listType)
{
if(listType == "A")
{
List<A> a= new List<A>()
...
return a;
}
else
{
List<B> b = new List<B>()
return b;
}
}
Run Code Online (Sandbox Code Playgroud)
在下面的示例中,我收到类似于以下内容的错误:无法转换List<A>为List<T>
这可能吗?错误发生在'return a;'上 代码行.
另外,我需要做些什么来确保线路上不会发生错误:
List<A> a= GetData("A");
Run Code Online (Sandbox Code Playgroud)
谢谢,史蒂文
情况1:我有一个包含30列的表,我在where子句中使用4列进行查询.
情况2:我有一个包含6列的表,我在where子句中使用4列进行查询.
两种情况下的表现有何不同?
例如我有桌子
table A
{
b varchar(10),
c varchar(10),
d varchar(10),
e varchar(10),
f varchar(10),
g varchar(10),
h varchar(10)
}
SELECT b,c,d
FROM A
WHERE f='foo'
create table B
{
b varchar(10),
c varchar(10),
d varchar(10),
e varchar(10),
f varchar(10)
}
SELECT b,c,d
FROM B
WHERE f='foo'
Run Code Online (Sandbox Code Playgroud)
A和B表具有相同的结构意味着在条件也相同且列中的列也相同时使用的列数和列数的差异.不同之处在于表B只有一些未使用的列,这些列未在select中使用,在这种情况下,两种查询的性能有何不同?
我正在尝试制作一个LESS mixin,它会给我这个输出:
.resource:nth-child(8n+1) { clear: left; }
Run Code Online (Sandbox Code Playgroud)
到目前为止我有这个:
.wrap-every(@n) {
&:nth-child(@n + "n+1") { // parse error on this line
clear: left;
}
}
.resource {
.wrap-every(8);
}
Run Code Online (Sandbox Code Playgroud)
但它在指定的行上给出了解析错误
ParseError:无法识别的输入
有没有办法做到这一点?
c# ×5
css ×2
sql-server ×2
autoboxing ×1
c#-6.0 ×1
database ×1
dictionary ×1
generics ×1
html ×1
ienumerable ×1
iterator ×1
layout ×1
less ×1
mixins ×1
nullable ×1
sql ×1
types ×1