在System.Linq命名空间,我们现在可以扩展我们IEnumerable的有Any()和Count() 扩展方法.
最近我被告知如果我想检查一个集合中是否包含一个或多个项目,我应该使用.Any()扩展方法而不是.Count() > 0扩展方法,因为.Count()扩展方法必须迭代所有项目.
其次,一些集合具有属性(未扩展方法),其是Count或Length.使用它们会更好吗,而不是.Any()或.Count()?
是啊/是?
我经常遇到我想在我声明它的地方评估查询的情况.这通常是因为我需要多次迭代它并且计算起来很昂贵.例如:
string raw = "...";
var lines = (from l in raw.Split('\n')
let ll = l.Trim()
where !string.IsNullOrEmpty(ll)
select ll).ToList();
Run Code Online (Sandbox Code Playgroud)
这很好用.但是,如果我不打算修改结果,那么我不妨打电话给ToArray()而不是ToList().
我想知道是否ToArray()通过第一次调用实现,ToList()因此内存效率低于仅调用ToList().
我疯了吗?我应该只是打电话ToArray()- 安全且安全地知道内存不会被分配两次吗?
我正在使用Visual Studio 2010 Beta 2.我有一个[TestClass],有一个[TestInitialize],[TestCleanup]有几个[TestMethods].
每次运行测试方法时,都会运行初始化和清理方法!
我的印象中[TestInitialize]和[TestCleanup]应只运行一次,每次当地试运行.
那是对的吗?如果没有,这样做的正确方法是什么?
c# mstest visual-studio-2010 visual-studio vs-unit-testing-framework
我在控制器中创建一个selectList,以在视图中显示.
我正试图在飞行中创建它,有点像......这样......
myViewData.PageOptionsDropDown =
new SelectList(new [] {"10", "15", "25", "50", "100", "1000"}, "15");
Run Code Online (Sandbox Code Playgroud)
它编译,但输出不好......
<select id="PageOptionsDropDown" name="PageOptionsDropDown">
<option>10</option>
<option>15</option>
<option>25</option>
<option>50</option>
<option>100</option>
<option>1000</option>
</select>
Run Code Online (Sandbox Code Playgroud)
注意没有选择项目?
我怎样才能解决这个问题??
想象一下我想创建(或覆盖)以下文件: - C:\Temp\Bar\Foo\Test.txt
使用File.Create(..)方法,这可以做到这一点.
但是,如果我没有以下任何一个文件夹(从该示例路径,上面)
然后我得到一个DirectoryNotFoundException抛出.
那么.. 给定一个路径,我们如何递归创建创建文件所需的所有文件夹..对于该路径? 如果存在Temp或Bar文件夹,但Foo不存在......那么也会创建.
为简单起见,我们假设没有安全问题 - 所有权限都很好,等等.
我的业务是制作非关键任务的网站和应用程序- 例如.银行软件,太空飞行,重症监护应用等.你明白了.
那么,有了这个庞大的免责声明,在一些Sql语句中使用NOLOCK提示是不是很糟糕?几年前,一位Sql管理员建议我应该使用NOLOCK,如果我对"脏读"感到满意,这会让我的系统性能提高一些,因为每次读取都没有锁定表/行/不管.
我还被告知,如果我遇到死锁,这是一个很好的解决方案.所以,我开始关注这个想法几年,直到一个Sql大师帮我一些随机代码并注意到我的sql代码中的所有NOLOCKS.我被礼貌地责骂,他试图向我解释(为什么这不是一件好事)而且我迷路了.我觉得他的解释的本质是'它是一个解决更严重问题的创可贴解决方案......特别是如果你遇到了死锁.因此,修复问题的根源.
我最近做了一些谷歌搜索,并发现了这篇文章.
那么,有些sql db guru sensei的请赐教吗?
我有一些二进制数据,我想保存为图像.当我尝试保存图像时,如果用于创建图像的内存流在保存之前关闭,则会引发异常.我这样做的原因是因为我正在动态创建图像,因此我需要使用内存流.
这是代码:
[TestMethod]
public void TestMethod1()
{
// Grab the binary data.
byte[] data = File.ReadAllBytes("Chick.jpg");
// Read in the data but do not close, before using the stream.
Stream originalBinaryDataStream = new MemoryStream(data);
Bitmap image = new Bitmap(originalBinaryDataStream);
image.Save(@"c:\test.jpg");
originalBinaryDataStream.Dispose();
// Now lets use a nice dispose, etc...
Bitmap2 image2;
using (Stream originalBinaryDataStream2 = new MemoryStream(data))
{
image2 = new Bitmap(originalBinaryDataStream2);
}
image2.Save(@"C:\temp\pewpew.jpg"); // This throws the GDI+ exception.
}
Run Code Online (Sandbox Code Playgroud)
有没有人对如何在关闭流的情况下保存图像有任何建议?我不能依赖开发人员记住在保存图像后关闭流.实际上,开发人员没有使用内存流生成映像的IDEA(因为它发生在其他地方的其他代码中).
我真的很困惑:(
所以我开始使用Git + GitHub.
在我们的小型分布式团队中,每个成员都为每个分配的问题/要求创建自己的分支.
git branch Issue#1 <-- create this branchgit checkout issue#1 <-- switch over to this branch现在code code,commit,code,commit,等...
然后pull request,code-fixup,commit,code,commit..等
并且最终......拉请求被接受.
活泉.
但是..现在怎么样?(......尴尬......)
在本地开发机器上创建分支的人是否需要关闭分支?建议开发人员删除分支`(... -D ...),然后对主设备进行拉/刷...然后将获得所有分支代码.
嗯......不确定 - 请帮忙:)
我正在努力寻找一些使用RestSharp async和的异步C#代码的现代示例await.我知道Haack最近有更新,但我不知道如何使用新方法.
此外,我如何提供取消令牌以便可以取消操作(例如,如果一个人厌倦了等待并按下应用程序UI中的取消按钮).
c# ×5
.net ×4
linq ×2
performance ×2
.net-3.5 ×1
asp.net-mvc ×1
async-await ×1
asynchronous ×1
comments ×1
csv ×1
exception ×1
file-access ×1
file-format ×1
gdi+ ×1
git ×1
github ×1
image ×1
mstest ×1
nolock ×1
restsharp ×1
selectlist ×1
sql ×1
sql-server ×1
standards ×1
t-sql ×1