草庐IT

c# - 使用 Stacky API 获取 Stack Overflow 问题

我想使用StackyC#library从StackOverflow获取最新问题对于StackExchangeAPI.我获取了示例代码并尝试运行它,但是当涉及到从StackExchange网站返回数据时它挂起。StackyClientclient=newStackyClient("0.9","",Sites.StackOverflow,newUrlClient(),newJsonProtocol());varo=newQuestionOptions();o.FromDate=DateTime.Now.AddMinutes(-10.0);o.ToDate=DateTime.Now;o.In

c# - 如何在不使用循环的情况下将项目从列表复制到堆栈

我确实有一个Stack和一个List。我需要将所有项目从列表复制到堆栈而不使用循环,即for、foreach等。有推荐的方法吗? 最佳答案 您可以从任何IEnumerable对象创建堆栈varmyStack=newStack(myList);参见MSDN:http://msdn.microsoft.com/en-us/library/76atxd68.aspx但是,堆栈构造函数将在内部使用循环,只是您看不到而已。 关于c#-如何在不使用循环的情况下将项目从列表复制到堆栈,我们在Stack

c# - 使用默认值初始化队列或堆栈?

您可以使用预置值初始化列表:ListL1=newList{1,2,3};Queue是否有与上述等价的东西?我的想法是:QueueQ1=newQueue{1,2,3};这是行不通的。有什么解决方法吗?是QueueQ1=newQueue();Q1.Enqueue(1);Q1.Enqueue(2);Q1.Enqueue(3);唯一有效的解决方案? 最佳答案 使用构造函数QueueConstructor(IEnumerable)QueueQ1=newQueue(new[]{1,2,3});或者Listlist=newList{1,2,3};

c# - 在 C# 中,有没有一种方法可以在不循环的情况下将数组转换为 Stack<T>?

我有以下代码,它为我提供了一个包含路径文件夹层次结构的Stack:varpath=@"C:\Folder1\Folder2\Folder3\Folder4\Folder5\FileName.ext";//Stringarraywithanelementforeachlevelvarfolders=path.Split('\\');varstack=newStack();foreach(varfolderinfolders)stack.Push(folder);varfilename=stack.Pop();//'FileName.ext'varparent=stack.Pop();//

c# - 为什么 Stack<T> 和 Queue<T> 没有 Capacity 属性而 List<T> 有?

Capacity属性在List中是否比在其他集合(如Stack和Queue)中更有用?还是有其他方法可以获取Stack或Queue的容量? 最佳答案 我认为List具有Capacity属性而Stack和Queue没有的原因是这些类型的正常用法是不同的。对于List,用大量值填充它是相当常见的,甚至在它创建一段时间后也是如此。提供Capacity属性(和构造函数参数)有助于减少将大量项目添加到列表时将完成的重新分配的数量。Stack和Queue另一方面,它们不会立即添加大量项目已创建。据推测,Microsoft认为不值得添加Capac

c# - stack.ToList() – 元素顺序?

使用.ToList()时Stack上的扩展方法,结果是否与弹出每个元素并添加到新列表(与推送的相反)相同?如果是这样,这是因为它真的在遍历每个元素,还是它在内部反向存储元素并将数组滑入新的List中?? 最佳答案 Stack本身没有ToList方法,它是来自Enumerable的扩展方法类(class)。因为这些扩展方法只处理IEnumerable,可以安全地假设ToList迭代堆栈的项目以创建新列表(或者至少表现得像它会的那样-Enumerable方法有时会测试参数的类型并使用优化的实现)。有趣的是,文档似乎没有直接说明堆栈的枚举

c# - 堆栈和队列枚举顺序

我知道List枚举器保证枚举顺序并尊重最后的排序操作,我知道Dictionary和HashSet不,即你可以不确定Dictionarydictionary=...;foreach(varpairindictionary){}将按照附加的顺序处理对。Stack和Queue呢?他们的调查员是否保证任何顺序? 最佳答案 对于Stack,枚举目前由一个名为StackEnumerator的嵌套私有(private)类完成(这是来自ReferenceSource):privateclassStackEnumerator:IEnumerator,

c# - 在 C# 中检查堆栈大小

有没有办法在C#中检查线程堆栈大小? 最佳答案 这是ifyouhavetoask,youcan'taffordit的案例(RaymondChen先说。)如果代码依赖于足够的堆栈空间以致必须首先检查,那么重构它以使用显式Stack可能是值得的。对象代替。John关于改用分析器的评论是有道理的。也就是说,事实证明有一种方法可以估计剩余的堆栈空间。它并不精确,但对于评估您离谷底有多近的目的来说已经足够有用了。以下内容主要基于excellentarticlebyJoeDuffy.我们知道(或将做出假设):堆栈内存分配在一个连续的block中

c# - 这些对象的引用是在栈上还是在堆上?

如果有人能告诉我我是否理解得很好,我将不胜感激:classX{Aa1=newA();//referenceonthestack,objectvalueontheheapa1.VarA=5;//onthestack-valuetypeAa2=a1;//referenceonthestack,objectvalueontheheapa2.VarA=10;//onthestack-valuetype}此外,a1和a2引用都在堆栈上,而它们的“对象”值在堆上。但是VarA变量呢,它仍然是纯值类型?classA{intVarA;} 最佳答案

c# - 调试由于 StackOverflow 异常而失败的单元测试

每当单元测试由于StackOverflowException而失败时,单元测试过程会立即退出-找出发生了什么(据我所知)的唯一方法是调试单元的故障转储按照此处找到的步骤获得的测试过程CollectingUser-ModeDumps获取在抛出StackOverflowException时正在运行的单元测试的名称的最简单方法是什么?即使在调试单元测试时,我也很难找到当前单元测试的名称,因为它位于堆栈底部,而VisualStudio不会在调试窗口中显示整个堆栈,因为它太大了。有没有办法在不收集和调试故障转储的情况下找出哪个单元测试失败? 最佳答案