这更像是一个关于性能的学术问题,而不是一个现实的"我应该使用什么",但我很好奇,因为我根本不涉及IL,看看是什么构造的,我手边没有大数据集.反对.
那么哪个更快:
List<myObject> objs = SomeHowGetList();
List<string> strings = new List<string>();
foreach (MyObject o in objs)
{
if (o.Field == "something")
strings.Add(o.Field);
}
Run Code Online (Sandbox Code Playgroud)
要么:
List<myObject> objs = SomeHowGetList();
List<string> strings = new List<string>();
string s;
foreach (MyObject o in objs)
{
s = o.Field;
if (s == "something")
strings.Add(s);
}
Run Code Online (Sandbox Code Playgroud)
请记住,我真的不想知道string.Add(s)的性能影响(因为无论需要做什么操作都无法真正改变),只是设置每次迭代之间的性能差异(让我们看看)假设s可以是任何原始类型或字符串)每次迭代时调用对象上的getter.
我正在尝试使用Subversion repo设置我的家庭服务器(经过一些更改).
我在Windows Server 2003服务器上卸载了重新安装的VisualSVN Server,并且回购的地址(即URL)是https://server.network.local/svn/
.
我可以通过IE浏览到该地址,并获取存储库列表(我必须点击过去的证书错误),但当我指向它时,我得到它
OPTIONS of 'https://server.network.local/svn': Could not resolve hostname
'server.network.local': No such host is known.
(https://server.network.local)
Run Code Online (Sandbox Code Playgroud)
我可以ping和tracert到服务器没有问题,所以我不知道这笔交易是什么.
我有一个玩具问题,感觉应该很简单。我想要一个像 Join-Path 这样支持管道的函数。称之为构建路径。因此,这些语句(这是我的测试 1-4)应该是等效的:
Get-Location | Build-Path Test
Get-Location | Build-Path -Right Test
Build-Path -Left (Get-Location) -Right Test
Build-Path (Get-Location) Test
Run Code Online (Sandbox Code Playgroud)
我已经尝试了很多方法,最接近的是我可以获得这两个函数(互斥):
A:对这两个价值观都有明确的立场;测试 1 失败
function Build-Path
(
[Parameter(Mandatory=$true, Position=0, ValueFromPipeline=$true)]
[String] $Left,
[Parameter(Mandatory=$true, Position=1)]
[String] $Right
)
{
Join-Path $Left $Right
}
Run Code Online (Sandbox Code Playgroud)
B:管道参数上无位置,Right位置为0;测试 4 失败
function Build-Path
(
[Parameter(Mandatory=$true, ValueFromPipeline=$true)]
[String] $Left,
[Parameter(Mandatory=$true, Position=0)]
[String] $Right
)
{
Join-Path $Left $Right
}
Run Code Online (Sandbox Code Playgroud)
我已经尝试以多种方式使用 ParameterSets(没有保存我的尝试),但没有成功,我现在有点困惑。
想法?
我正在尝试将一个mysql数据库中的列的内容复制到另一个mysql数据库中的相同表.
我正在使用:
UPDATE db1.table
SET db1.table.name = db2.table.name,
db1.table.address = db2.table.address
WHERE db1.table.id = db2.table.id;
Run Code Online (Sandbox Code Playgroud)
我收到错误1054:'where子句'中的未知列'db2.table.id'.
两个表都有一个id列,所以我不确定它为什么不起作用.我以管理员身份登录,并拥有两个数据库的完全权限.
是否可以将字段(文本框)绑定到未实现集合的Property?
例如,我有一个实现带有3个字段的INotifyPropertyChanged的对象:
public decimal SubTotal
{
get { return this.subTotal; }
set
{
this.subTotal = value;
this.NotifyPropertyChanged("SubTotal");
this.NotifyPropertyChanged("Tax");
this.NotifyPropertyChanged("Total");
}
}
public decimal Tax
{
get { return this.taxCalculator.Calculate(this.SubTotal, this.Region); }
}
public decimal Total
{
get { return this.SubTotal + this.Tax; }
}
Run Code Online (Sandbox Code Playgroud)
我还没有完全测试这个,因为没有制作UI,并且在它运行之前还有很多其他工作需要在这个类中完成,但是这可能是我拥有它的方式,还是有不同的方式?
我正在尝试编写一个sql函数来执行以下操作:
SELECT
person.id,
person.phonenumber
FROM
person INNER JOIN activity ON person.id = activity.personid
WHERE
MAX(activity.activitydate) < DATE_SUB(CURDATE(), INTERAVAL 180 DAY);
Run Code Online (Sandbox Code Playgroud)
每次联系一个人时,我们都会为他们创建一个带有笔记等的活动记录.所以我正在寻找在过去180天内没有联系过的所有人.显然,这不起作用,因为max不能在where子句中使用.
我看到了这个,但是mysql没有with语句.
另外,我试过了
SELECT
person.id,
person.phonenumber,
MAX(activity.activitydate) as ndate
FROM
person INNER JOIN activity ON person.id = activity.personid
WHERE
ndate < DATE_SUB(CURDATE(), INTERVAL 180 DAY)
GROUP BY person.id;
Run Code Online (Sandbox Code Playgroud)
但ndate不得而知.
知道我是怎么做的吗?
我有一个select语句,它连接几个表并获取一些信息.我想用select中包含的信息更新其中一个表(在select中找到)的所有记录.选择如下:
SELECT account.id
document.id
FROM customer INNER JOIN account ON
(customer.firstname = account.firstname AND
customer.lastname = account.lastname AND
customer.phone = account.phone)
INNER JOIN document ON
customer.id = document.customerid
WHERE document.accountid IS NULL;
Run Code Online (Sandbox Code Playgroud)
在英语中,文档可以属于客户和帐户.我正在寻找与客户记录匹配的帐户记录,其中文档属于客户,而不是帐户.
现在,我可以手动完成结果并运行:
UPDATE document
SET accountid = /*account.id*/
WHERE id = /*document.id*/;
Run Code Online (Sandbox Code Playgroud)
它可以按照我的意愿运行,但是有大量的记录符合我的查询,如果可以的话,我想在一个声明中完成.
假设服务正在运行并且正在使用中,并且您没有更改合同或任何内容 - 只是一些基础逻辑.将服务发布到IIS后,是否必须重新启动IIS?
(如果重要,InstanceContextMode是Single)
有没有你需要/不需要的情况?
我正在尝试创建一个自定义属性,它将以一种AOP方式工作(我无法访问postharp,不幸的是,我对Unity不是很熟悉).它有AttributeUsage.Method,并在其构造函数中配置测试环境的某些部分(从app.config中提取一些信息并调用一些配置环境的exes).
它的工作原理,除了现在,当我构建解决方案时,属性被执行 - 这是不可取的.
有没有办法创建一个不在编译时执行的自定义属性?
编辑>我想一个示例用法可能会有所帮助:
public void Scenario1Tests
{
[Test]
[Environment(Environments.A)]
public void Scenario1TestA()
{
Assert.Something();
}
[Test]
[Environment(Environments.Any)]
public void Scenario1TestB()
{
Assert.SomethingElse();
}
}
// Most tests will be written environment independent, some must not
public enum Environments
{
A,
B,
Any
};
[AtrributeUsage(AttributeTargets.Method)]
public void Environment : Attribute
{
public Environment(Environments env)
{
// lots of test can have this attribute, requirement is
// that it is only configured once as it is a lengthy configuration …
Run Code Online (Sandbox Code Playgroud) 我有一个控制台应用程序,它很快就会死掉,并且在检查代码后,我无法确切知道死掉的位置(我基本上将其缩小到10行半径),以便进一步调试它。
由于我不愿讨论的原因,我无法从VS执行该过程(尽管我具有二进制文件,源代码和pdbs,但是我无法在构建服务器的环境之外进行构建),并且想要附加到流程...但是当我开始流程时,它死的时间比我希望刷新“ 附加到流程”对话框的时间要早得多。
有想法吗?
.net-4.0 attach-to-process visual-studio-2012 windows-server-2012
c# ×3
mysql ×3
sql ×3
.net-4.0 ×1
aop ×1
data-binding ×1
deployment ×1
iis-6 ×1
performance ×1
powershell ×1
properties ×1
sql-update ×1
svn ×1
tortoisesvn ×1
wcf ×1
winforms ×1