草庐IT

去重复

全部标签

c# - 使用 LINQ 选择单个列表的所有唯一组合,不重复

我有一个数字列表,我需要使用LINQ查询创建列表中所有可能的唯一数字组合,不重复。因此,例如,如果我有{1,2,3},则组合将是1-2、1-3和2-3.我目前使用两个for循环,如下所示:for(inti=0;i是否可以将这两个for循环转换为LINQ?谢谢。 最佳答案 当然-您可以在对SelectMany的单个调用中通过对Skip的嵌入式调用来完成此操作:varquery=slotIds.SelectMany((value,index)=>slotIds.Skip(index+1),(first,second)=>new{firs

c# - 生成在合理时间内不重复的唯一编号的方法?

我正在集成/测试远程Web服务,即使它是“QA”端点,它仍然在每个调用上强制使用唯一的电子邮件地址。我可以想到DateTime.Now.Ticks(例如634970372342724417)和Guid.NewGuid(),但这些都不能合并到一封电子邮件中。20个字符(或者可以吗?)。我想将包含最后使用的数字的数字写入文件并使用email1@x.com、email2@x.com等...并不难,但是如果我可以避免持久状态,我总是这样做。有没有人有技巧或算法可以提供短长度“guid”的东西,它在相当长的时间段(比如一年)内是独一无二的,我可以将其用于最大长度为20个字符的电子邮件地址(gui

c# - 如何重复一组字符

我想多次重复一组字符。我知道如何用一个字符来做到这一点:stringline=newstring('x',10);但我想要的更像这样:stringline=newstring("-.",10);这将导致:-.-.-.-.-.-.-.-.-.-.我知道字符串构造函数不能这样做,但是BCL中还有其他方法吗?其他建议?谢谢! 最佳答案 BalaR的答案略有不同vars=String.Concat(Enumerable.Repeat("-.",10)); 关于c#-如何重复一组字符,我们在Sta

c# - 防伪 token 可重复使用

我们使用ASP.NETMVC的默认防伪技术。最近一家安全公司对表格进行了扫描,并注意到他们可以多次使用相同的_RequestVerificationToken组合(cookie+隐藏字段)。或者他们是怎么说的:“正文中的CSRFtoken在服务器端进行了验证,但即使在服务器端使用后也不会被撤销生成一个新的CSRFtoken。”在阅读了关于防伪实现的文档和多篇文章后,我的理解是,只要session用户与token中的用户匹配,这确实是可能的。他们的部分建议:“这样的代币应该在至少,每个用户session都是唯一的”据我了解,情况已经如此,除了匿名用户,对吗?我的问题:这是一个安全问题吗?

c# - 如何从 C# 中的列表中删除非重复项

我想做与here相反的事情我有一个列表,我知道如何删除重复项。但我想有一个选项,用户可以选择要保留的副本。一些查询查询我可以有一个只显示重复项的列表。像这样的东西:假设我的列表是:"tom""bob""Frank""bob""Lacey""Frank"我知道如果我使用distinct方法我会得到:"tom""bob""Frank""Lacey"我不知道我必须使用什么方法来获取:"bob""bob""frank""frank"或得到"bob""frank"因为那些是重复的。 最佳答案 您可以使用GroupBy过滤掉只出现一次的项目,然

c# - Linq to SQL 创建重复的设计器文件

我的LinqtoSQLDBML文件有一个奇怪的错误,每当我保存它时,都会创建一个重复的文件,而不是保存到现有的设计器文件。由于file.designer.cs和file1.designer.cs中的数据上下文构造函数之间存在歧义,这导致了整个地方的错误有什么方法可以修复此错误,而不涉及删除和重新创建dmbl文件。因为这个错误发生在我所有的DBML文件上,其中一些文件相当大。上图显示了我遇到的问题。 最佳答案 不确定是什么原因造成的(但Marc关于文件只读或未checkout的建议似乎是可能的),但.proj文件中描述了关联。如果您使

c# - 如何避免重复的接口(interface)代码?

由于接口(interface)不能包含实现,在我看来这会导致从接口(interface)继承的类中出现代码重复。在下面的示例中,假设设置从Stream读取的前10行左右是重复的。尽量不要关注这里的措辞,而是关注在每个类之间创建重复代码是多么容易的概念。例如:publicinterfaceIDatabaseProcessor{voidProcessData(Streamstream);}publicclassSqlServerProcessor:IDatabaseProcessor{voidProcessData(Streamstream){//settinguplogictoreadt

C# 从 List<List<int>> 中删除重复项

我无法想出最有效的算法来从List>中删除重复项,例如(我知道这看起来像int[]的列表,但只是出于视觉目的这样做:my_list[0]={1,2,3};my_list[1]={1,2,3};my_list[2]={9,10,11};my_list[3]={1,2,3};所以输出就是new_list[0]={1,2,3};new_list[1]={9,10,11};如果您有任何想法,请告诉我。我真的很感激。 最佳答案 构建自定义EqualityComparer>:publicclassCusComparer:IEqualityCom

c# - 如何检查我的数组中是否有重复值?

这是我的数组。double[]testArray=newdouble[10];//willgeneratearandomnumbersfrom1-20,toolazytowritethecode我想创建一个搜索循环来检查是否有重复的值。我该怎么做?我不想使用任何特殊的内置方法,因为这是一个小数组。 最佳答案 你可以用一点Linq来做到这一点:if(testArray.Length!=testArray.Distinct().Count()){Console.WriteLine("Containsduplicates");}Disti

c# - 如何防止枚举中的重复值?

我想知道有没有办法阻止具有重复键的enum编译?例如下面的这个enum将编译publicenumEDuplicates{Unique,Duplicate=0,Keys=1,Compilation=1}虽然这段代码Console.WriteLine(EDuplicates.Unique);Console.WriteLine(EDuplicates.Duplicate);Console.WriteLine(EDuplicates.Keys);Console.WriteLine(EDuplicates.Compilation);将打印DuplicateDuplicateKeysKeys