草庐IT

c# - 为具有泛型集合的 C# 项目生成 Doxygen

我正在使用Doxygen和GraphVizDot为C#项目生成一些协作图。问题是Doxygen无法识别通用集合(如List)。有人对此有解决方案吗?我找到了thiscomment这看起来希望不大,但想知道是否有任何解决方法。 最佳答案 根据Doxygen'schangelog,C#中的泛型在版本1.8.1.1(10月6日发布)之前未被索引。我没有看到它的相应错误,尽管查看以前的版本它们已经支持了一段时间。正如我上面的评论所述,我没有发现使用当前版本(1.8.2)有任何问题。如果那是您使用的版本,请特别指出不起作用的地方。

c# - Unity,奇怪的调试

我添加了必要的using语句。在我的类的顶部使用System.Collections.Generic,编译器很乐意接受我对列表的使用,但是当我调试时,我遇到了一个非常奇怪的调试问题,因为当我展开我的列表时,我得到:未知类型'System.Collections.Generic.CollectionDebuggerView'1mscorlib。可能的原因有哪些?Google似乎没有帮助我...列表似乎确实在声明和空时声明了它们的信息,并且它们是用我创建的类定义的,但我从未在任何其他工具包(如XNA等)中看到过这个问题。我还应该提到这是通过MonoDevelop我看到了这个错误。谢谢。

c# - 生成字符串列表的所有组合

我想生成一个字符串列表的所有可能组合的列表(它实际上是一个对象列表,但为简单起见,我们将使用字符串)。我需要这个列表,以便我可以在单元测试中测试每个可能的组合。例如,如果我有一个列表:varallValues=newList(){"A1","A2","A3","B1","B2","C1"}我需要一个List>所有组合如:A1A2A3B1B2C1A1A2A1A2A3A1A2A3B1A1A2A3B1B2A1A2A3B1B2C1A1A3A1A3B1etc...递归函数可能是获得所有组合的方法,但它似乎比我想象的要难。有什么建议吗?谢谢。编辑:两种解决方案,有或没有递归:publicclass

c# - 如何使用 Linq 检查字符串列表是否包含列表中的任何字符串

我正在构造一个linq查询,它将检查数据库中的字符串是否包含字符串列表中的任何字符串。类似的东西。query=query.Where(x=>x.tags.Contains(--anyoftheitemsinmylistofstrings--));我还想知道列表中有多少项是匹配的。如有任何帮助,我们将不胜感激。更新:我应该提到标签是一个字符串而不是列表。在查询实际运行之前,我添加了一些与标签无关的位置。这是针对EntityFramework运行的。 最佳答案 编辑:这个答案假设tags是一个字符串集合...听起来你可能想要:varli

c# - 为什么 List<double> 显式转换为 IEnumerable<object> 会抛出异常?

根据这个MSDNreferenceIEnumerable是协变的,这可以将对象列表隐式转换为可枚举对象:IEnumerablestrings=newList();IEnumerableobjects=strings;在我自己的代码中,我写了一行代码,当列表的项目类型是Point类时,它可以完美运行(Point是一个简单的类,具有三个双x、y、z属性):varobjects=(IEnumerable)dataModel.Value;//herepropertyValueisalistthatcouldbeofanytype.但是当列表的项类型为double时,上面的代码返回以下异常:Un

c# - Casting List<T> - 协方差/逆变问题

给定以下类型:publicinterfaceIMyClass{}publicclassMyClass:IMyClass{}我想知道如何转换List到List?我对协变/逆变主题不是很清楚,但我知道我不能因此而简单地使用List。我只能想出这个微不足道的解决方案;缺乏优雅,浪费资源:...publicListConvertItems(Listinput){varresult=newList(input.Count);foreach(varitemininput){result.Add(item);}returnresult;}....如何以更优雅/更高效的方式解决它?(请注意,我需要.N

c# - 在 c# Parallel.ForEach 中的 List.Add() 上出现 "Index out of bounds"错误

这是代码Listsomething=newList();Parallel.ForEach(anotherList,r=>{..dosomeworksomething.Add(somedata);});Indexoutofbounds错误大约每百次运行1次。有没有办法防止由线程引起的冲突(我假设)? 最佳答案 为了防止出现此问题,您可以使用ConcurrentQueue而不是List或并行部分中的类似并发集合。并行任务完成后,您可以将其放入List中。.有关详细信息,请查看System.Collections.Concurrent命名

c# - 如何根据多个条件并使用 linq 从通用列表中删除项目

我有两个列表,一个包含url,另一个包含所有MIME文件扩展名。我想从第一个列表中删除所有指向此类文件的url。示例代码:Listurls=newList();urls.Add("http://stackoverflow.com/questions/ask");urls.Add("http://stackoverflow.com/questions/dir/some.pdf");urls.Add("http://stackoverflow.com/questions/dir/some.doc");//totalitemsinthesecondlistare190Listmime=new

c# - List<T>.Contains() 如何找到匹配项?

我有一个汽车对象列表Listcars=GetMyListOfCars();我想看看列表中是否有汽车if(cars.Contains(myCar)){}Contains使用什么来确定myCar是否在列表中。它是否对我的汽车对象执行“ToString()”。它是否使用Equals()方法,即gethashcode()?我知道我可以传递我自己的IEqualityComparer来强制我自己的实现,但只是想了解它默认情况下的作用。 最佳答案 直接来自MSDN-List.Contains:Thismethoddeterminesequalit

c# - 通过接口(interface)枚举 - 性能损失

我和我的同事有一点争执(这非常接近圣战:)),关于通过枚举器通过索引VS访问列表的性能。为了处理一些事实,我编写了以下测试:staticvoidMain(string[]args){constintcount=10000000;varstopwatch=newStopwatch();varlist=newList(count);varrnd=newRandom();for(inti=0;i实际上,它只是访问元素。如我所料,索引访问速度更快。这是在我的机器上发布构建的结果:0.0347//indexaccess0.0737//enumerating但是,我决定稍微改变一下测试://the