可能重复:
如何测量函数运行的时间?
我有一个I/O计时方法,可以将数据从一个位置复制到另一个位置.什么是计算执行时间的最佳和最实际的方法?Thread?Timer?Stopwatch?还有其他方法吗?我想要最精确的一个,尽可能简短.
我需要找到一个瓶颈,并且需要准确地测量时间.
以下代码段是衡量性能的最佳方法吗?
DateTime startTime = DateTime.Now;
// Some execution process
DateTime endTime = DateTime.Now;
TimeSpan totalTimeTaken = endTime.Subtract(startTime);
Run Code Online (Sandbox Code Playgroud) 我一直在寻找之间的性能基准测试Contains,Exists以及Any方法可用List<T>.我只想出于好奇而发现这一点,因为我总是在这些中感到困惑.关于SO的许多问题描述了这些方法的定义,例如:
所以我决定自己做.我将其添加为答案.对结果有任何更多见解是最受欢迎的.我还对数组进行了基准测试以查看结果
不幸的是,这些方法的名称产生了可怕的搜索术语,我一直无法找到解释这些方法之间差异的好资源 - 就像何时使用每种方法一样.
谢谢.
编辑:
我试图完全理解的那种查询是这样的:
context.Authors.Where(a => a.Books.Any(b => b.BookID == bookID)).ToList();
Run Code Online (Sandbox Code Playgroud)
感谢所有回答的人.
我正在查看一些代码,IEnumerable<T>并将其转换为一个代码,List<T>以便它可以使用List<T>.Find(predicate):
var myEnumerable = ...;
var myList = new List<T>(myEnumerable);
var match = myList.Find(value => value.Aaa == aaa && value.Bbb == bbb);
Run Code Online (Sandbox Code Playgroud)
有没有办法使用具有相同效果的LINQ扩展方法重写它,但没有构建额外List<T>的中间步骤?
该FirstOrDefault(source, predicate)扩展方法看起来像一个很好的候选人,而是试图弄清楚它是否正好等同于Find正在我的头不疼.
如何检查true_or_false 包含false值的数组?
bool[] true_or_false = new bool[10];
for (int i = 0; i < txtbox_and_message.Length; i++)
{
bool bStatus = true;
if (txtbox_and_message[i] == "")
{
bStatus = false;
}
true_or_false[i] = bStatus;
}
Run Code Online (Sandbox Code Playgroud) 我有这样的结构
public struct MyStruct
{
public string Name;
//More fields and construtors
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我List<MyStruct>有一种方法来使用Contains()列表的功能?
这不编译:
if(_myStructList.Contains(x => x.Name == "DAMN!")){//DO STUFF}
这是错误:
Cannot convert lambda expression to type 'MyStruct' because it is not a delegate type
Run Code Online (Sandbox Code Playgroud)
我猜那么这不会与结构一起使用?!
我对linq online的解释感到有些困惑,所以我想我会创建一个帖子.
我想用linq语句替换我的foreach语句,因为我确信做这样的小事会让我的程序更好.
我想用LINQ做的例子:
public bool CheckForAccount(int accountID)
{
bool status = false;
foreach (AccountHolders accountHolder in AccountHoldersList)
{
if (accountHolder.AccountNumber == accountID)
{
status = true;
break;
}
}
return status;
}
Run Code Online (Sandbox Code Playgroud)
请你能解释它是如何工作的,所以我理解你在做什么.
提前致谢!
对不起,标题,我真的不知道该怎么用一个句子来解释...
我有这样的课
public class xyz
{
public static string attr1;
public static string attr2;
public static string attr3;
}
Run Code Online (Sandbox Code Playgroud)
我如何检查是否有一个对象的attr1 ==“ aaa” List<xyz>?
是否有类似的东西
List<xyz> MyList = new List<xyz>();
[...]
bool attr1_exist = MyList.attr1.Contains("aaa");
Run Code Online (Sandbox Code Playgroud)
?
我正在寻找像LINQ这样的方法List.Exists(predicate).
bool exists = mylist.Exists(p => p.Name == "Kamila");
bool exists = collection.??????(p => p.Name == "Kamila");
Run Code Online (Sandbox Code Playgroud)