重新创建一个控件组
假设我有一个带有类似的面板... 3个控件.我最终可能会添加更多控件或更改该面板中的定位.程序启动后,我将通过编程性隐藏控件.最终,用户可以单击一个按钮,该按钮将创建原始面板的副本以填充表单上的区域.该按钮最终应具有再次单击的选项,这意味着这些区域的多个实例可以填充该区域.请记住,这些控件可能具有文本标签,可以通过编程方式单独设置或更改.我假设要执行此程序,我需要列出一个控件列表,也许是面板列表?考虑到我需要多次复制的多个控件的事实,我不确定该怎么做. 有没有一种简单的方法可以做到这一点?我真的不想用任何类型的第三方套餐进行重复. 解决方案 您将必须在代码中进行操作,因此它会尽可能地代码;-) 认真的课程最常见的是 创建一个与表单相关的类UserControl,使用您想要的布局. ..并添加越来越多的实例.. ..通常是FlowLayoutPanel,通常使用AutoScroll 这是非常漂亮而简单的IMO. 这是一个简短的步行. 首先,我们像
0 2024-04-26
编程技术问答社区
C#-从KeyValuePair列表中删除重复的键并添加值
我在c#格式化为string,int中的keyvaluepair列表,其中示例内容: mylist[0]=="str1",5 mylist[2]=="str1",8 我希望一些代码删除其中一个项目,然后添加重复值. 所以是: mylist[0]=="str1",13 定义代码: List> mylist = new List>(); 托马斯,我将尝试用伪代码进行解释. 基本上,我想要 mylist[x]==samestring,someint mylist[n]==samestring,otherint 成为: mylist[m]==samestring,someint+otherint 解决方案 var newList = myList.GroupBy(x => x.Key) .Select(g => ne
2 2024-04-25
编程技术问答社区
C#: 比较两个自定义类的ArrayList并找出重复的部分
我有两个阵列的数组. public class ProductDetails { public string id; public string description; public float rate; } ArrayList products1 = new ArrayList(); ArrayList products2 = new ArrayList(); ArrayList duplicateProducts = new ArrayList(); 现在我想要的是在products1>和products2中都获得所有产品(所有产品Detetails类). . 我可以以/while循环作为传统方式运行两个,但是如果我在中都有超过10k的元素. . 因此,Linq. 可能会做些事情 解决方案 如果要使用Linq,则需要编写自己的EqualityComparer,其中覆盖这两种方法 equals equals and gethas
6 2024-04-25
编程技术问答社区
如何从int[][]中删除重复的内容
我有一系列数组 - 使用VSTO在Excel中选择的信息,其中每个元素都表示启动和结束选择位置. 例如, int[][] selection = { new int[] { 1 }, // column A new int[] { 6 }, // column F new int[] { 6 }, // column F new int[] { 8, 9 } // columns H:I new int[] { 8, 9 } // columns H:I new int[] { 12, 15 } // columns L:O }; 您能帮我找到一种方法,也许是使用LINQ或扩展方法来删除重复的元素?我的意思是:F和F,H:I和H:I,等等. 解决方案 如果要使用纯Linq/扩展方法解决方案,则需要为数组/序列定义自己的IEqualityComparer实现. (除非我缺少明显的东西,否则BCL中没有预先存在的数组或序列比较).但是,这并不难 - 这是一个应该很好地
2 2024-04-24
编程技术问答社区
查找列表中的连续重复部分
有很多方法可以在列表中找到重复项,是否有任何方法可以在列表中找到连续的重复项. 例如 List stringList = new List(); stringList.Add("Name1"); stringList.Add("Name2"); stringList.Add("Name1"); 除了 stringList.Add("Name1"); stringList.Add("Name1"); stringList.Add("Name2"); 应返回1个条目 这返回重复. var q = listString.GroupBy(x => x) .Select(g => new { Value = g.Key, Count = g.Count() }) .OrderByDescending(x => x.Count); 解决方案 为什么不只是 store 最后一项?像这样的
10 2024-04-23
编程技术问答社区
基于特定行的值,LINQ从数据表中删除重复的行
我看到了以下解决方案,用于使用LINQ DataTable中删除重复行: 说,如果我们有一个DataTable DataTable,称为dt,那么以下stapemend显然可以完成工作: IEnumerable uniqueContacts = dt.AsEnumerable().Distinct(DataRowComparer.Default); ,但这只能删除相同的重复行.我要做的是删除所有具有特定行的重复值的行. 例如.如果我们有一个名为"电子邮件"行的数据表,我们如何删除所有具有相同电子邮件值的行? 解决方案 简单方法:使用GroupBy: var uniqueContacts = dt.AsEnumerable() .GroupBy(x=>x.Field("Email")) .Select(g=>g.First());
2 2024-04-23
编程技术问答社区
如何删除ListView中的重复项?
好吧,我需要检查我的应用程序中的ListView中是否存在重复的项目,但是...我不知道如何. 检测到这一点的方法是通过检查字段"标签",如果它们相同,然后删除项目. 解决方案 查找重复项的一种好方法是使用临时标签.这为您提供了 O(n) O(n log n)算法(请参阅Rick Sladkeys评论),以检测重复.示例: var tags = new HashSet(); var duplicates = new List(); foreach(Item item in listView.Items) { // HashSet.Add() returns false if it already contains the key. if(!tags.Add(item.Tag) duplicates.Add(item); } [Remove duplicates here] 其他解决方案 使用嵌套的
22 2024-04-23
编程技术问答社区
批处理脚本,需要帮助生成六行不同的数字(介于 1 和 39 之间),且与前一行中任何数字的共同点不超过 2 个。
批处理脚本,需要帮助生成六个不同数字的行,这些数字与任何以前的行不超过2个数字 目标是生成300组的CSV文件,共1至39个,每组6组在单独的行上,每行最多与任何以前的行(两个数字)共有两个数字所有以前的行的任何一行).那是目标.我打了一个障碍.我希望有人可以看到一种更简单的方法. 我制作的脚本(拼凑)生成了一个列表文件而无需重复的列表文件,但是行本身越来越长,而不是在6中切断.我仍然需要将所有先前行检查到确保最大两个重复.如果某人有解决方法(真诚的方法),我非常感谢任何人都能尽快实现目标. 到目前为止,这是脚本: @echo off setlocal enabledelayedexpansion for /L %%j in (1 1 10) do ( call:get_rand echo %%j ;!NUM[1]!;!NUM[2]!;!NUM[3]!;!NUM[4]!;!NUM[5]!;!NUM[6]! >> test.txt
6 2024-04-23
编程技术问答社区
使用LINQ查找目录中的重复文件
我目前正在编写一个程序,该程序从用户给定参数的各种来源下载图像. 我的问题是我不希望重复发生. 我应该指出,我一次要处理一次最大100个最大质量下载(不是那么大),并且每个文件都有不同的名称,因此简单地按文件名搜索是行不通的,我需要检查哈希斯. 无论如何,这就是我已经发现的: Directory.GetFiles(FullPath) .Select(f => new { FileName = f, FileHash = Encoding.UTF8.GetString(new SHA1Managed().ComputeHash(new FileStream(f, FileMode.Open, FileAccess.Read))) }) .GroupBy(f => f.FileHash) .Select(g => new { FileHash = g.Key, Files
12 2024-04-22
编程技术问答社区
返回唯一的值而不删除重复的值-C#
我知道在删除重复项后返回数组中的唯一值有很多答案,但是删除重复项后数组中的每个元素不是唯一的吗?我只想返回在删除任何重复项之前唯一的唯一值.如果元素在原始数组中重复,我不希望它在我的最终数组中. 所以这个数组... [0, 1, 1, 2, 3, 3, 3, 4] 应仅返回: [0, 2, 4] 另一种用语的方法是删除所有重复的所有重复项以及所有唯一值. 我来自JavaScript背景,对于C#语法仍然有些动摇. :) 解决方案 最简单的方法是使用Linq,按值分组,计算每个组中的元素数,然后返回具有单个值的组的键: var singleOccurrences = array.GroupBy(x => x) .Where(g => g.Count() == 1) .Select(g => g.Key)
6 2024-04-22
编程技术问答社区
从集合中删除重复字节[]
这可能是一个非常简单的问题.我只是试图从集合中删除重复字节[]. 由于默认行为是要比较引用,因此我想到创建一个IQualityComparer可以起作用,但行之有效. 我尝试使用标签和linq的独特(). 示例代码: using System; using System.Collections.Generic; using System.Linq; namespace cstest { class Program { static void Main(string[] args) { var l = new List(); l.Add(new byte[] { 5, 6, 7 }); l.Add(new byte[] { 5, 6, 7 }); Console.WriteLine(l.Distinct(n
8 2024-04-22
编程技术问答社区
如何通过对象的一个属性,从自定义对象的列表中删除重复的对象
我想根据我的对象的属性删除重复物: public class MyType { public string _prop1; public string _prop2; public LocationsClass(string prop1, string prop2) { _prop1= prop1; _prop2= prop2; } } ... List myList; 基本上,我想从myList中删除所有mytype对象,在_prop1中具有相同的值.有没有办法做到这一点,可能是使用Linq? 解决方案 var distinctItems = myList.GroupBy(x => x.prop1).Select(y => y.First()); 其他解决方案 您还可以使用 Morelinq dimpppitionby : distinctItems = myLi
4 2024-04-22
编程技术问答社区
在KeyValuePair的列表中寻找重复的键
我在项目中有关键价值对列表.我想搜索List>并找到任何重复键,并使用C#lambda表达式获得该键和值.有人知道该怎么做吗? 这是我的示例代码 list = List> 我需要搜索此列表,并使用重复键(字符串)获取KeyValuePair的任何项目. 任何帮助将不胜感激 解决方案 IEnumerable>> duplicateKVPsByKey = list.GroupBy(kvp => kvp.Key).Where(g => g.Count() > 1); 此将KVP的KVP列表分组为键,然后将其过滤为仅1个以上的KVP的组. 从那里您可以循环浏览列表并查看每个重复键,也可以看到关联的对象. 这将打印出
8 2024-04-21
编程技术问答社区
在不使用LINQ的情况下,从可数据化中删除重复的列值
考虑我的数据表, Id Name MobNo 1 ac 9566643707 2 bc 9944556612 3 cc 9566643707 如何删除行3,其中包含重复的MobNo列中C#中的列值,而无需使用LINQ.我已经看到了类似的问题,但是所有答案都使用linq. 解决方案 以下方法完成了我想要的.. public DataTable RemoveDuplicateRows(DataTable dTable, string colName) { Hashtable hTable = new Hashtable(); ArrayList duplicateList = new ArrayList(); //Add list of all the unique item value to hashtable, which stores combination of key
6 2024-04-21
编程技术问答社区
重复的文本查找
我的主要问题是试图找到适合自动转动此问题的解决方案,例如: d+c+d+f+d+c+d+f+d+c+d+f+d+c+d+f+ 进入这个: [d+c+d+f+]4 即.找到重复的相互重复,然后从这些重复项中制成一个较短的"循环". 到目前为止,我还没有找到合适的解决方案,我期待回应. P.S.为了避免混淆,上述样本并不是唯一需要"循环"的东西,它因文件而异.哦,这是针对C ++或C#程序的,尽管我也对任何其他建议都开放.另外,主要思想是所有工作都将由程序本身完成,除了文件本身之外,没有用户输入. 这是完整的文件,供参考,我对拉伸页面表示歉意: #0 @16 V225 Y10 W250 T76 L16 $ ed $ ef $ a9 P20,20 > ecegb> d d+ d+f+a+> c+ f+d+d+ c cegbgegec ec D+C+D+F+D+C+D+F+D+C+D+F+D+D+C+C+D+F+F+ R1^1 / L8 R1R1R1R1 F+ f
6 2024-04-21
编程技术问答社区
从C#列表中删除重复的和原始的
我有一个自定义类型的列表,如果找到了副本,我想删除副本和原件.只能是一个可能的重复. 我可以过度过度和gethashcode,然后使用不同的东西,但这只会消除副本.我需要删除原件和重复...任何关于优雅的东西的想法,所以我不必使用锤子. 解决方案 您可以使用GroupBy,然后Where (g => g.Count() == 1)过滤所有具有重复的记录: var res = orig.GroupBy(x => x).Where(g => g.Count() == 1).Select(g => g.Key); 为了使此工作起作用,您仍然需要覆盖GetHashCode和Equals. 其他解决方案 var itemsExistingExactlyOnce = list.GroupBy(x => x) .Where(group => group.Count() == 1) .Select(group => group.Key);
0 2024-04-20
编程技术问答社区
如何删除文本框中的重复内容?
我有一个文本框,在新行上有每个项目.我正在尝试从此文本框中删除重复项.我什么都没想到.我尝试将每个项目添加到一个数组和删除重复项中,但这无效.还有其他选择吗? 解决方案 yourTextBox.Text = string.Join(Environment.NewLine, yourArray.Distinct()); 其他解决方案 建立Anthony Pegram写的内容,但不需要单独的数组: yourTextBox.Text = string.Join(Environment.NewLine, yourTextBox.Lines.Distinct()); 其他解决方案 将所有项目添加到字符串数组中,并使用此代码删除重复 public static string[] RemoveDuplicates(string[] s) { HashSet set = new HashSet(s); string[] r
4 2024-04-20
编程技术问答社区
如何在C#中删除列表中的重复内容
我想从此列表中删除重复项: List> val = new List>(); 如果我以这种方式应用不同的(),它不起作用: List> result = val.Distinct().ToList>() 更新:问题现在已经解决.我使用MySQL Union命令从数据库中读取表. 解决方案 尝试以下方法: List> result = val.Distinct(new myDictionaryComparer()).ToList(); 其中myDictionaryComparer是其他解决方案 您可以使用以下方法: val.Distinct()
2 2024-04-19
编程技术问答社区
在C#中删除字符串数组中重复的字符串的有效方法
我想知道一种有效的方法,可以从C#中的字符串数组中删除重复项. 例如, string[] a = { "abc", "xyz","abc", "def", "ghi", "asdf", "ghi","xd", "abc" }; 将变成 string[] a = { "abc", "xyz","def", "ghi", "asdf", "xd" }; 删除重复条目后如何填补空白? 有没有办法在不使用额外的阵列来存储元素的情况下进行此操作? 我使用的方法: 1) Sorted the array 2) Replaced the duplicate entries with null 3) Copied NOT null string to a new array. ,但正在寻找一种优化的方法. 编辑:我正在使用.NET 2.0和VS 2005 解决方案 您可以使用标签: string[] a = { "abc", "xyz",
2 2024-04-19
编程技术问答社区
使用Linq查找重复的记录,但得到整个记录
所以我正在使用此代码 var duplicates = mg.GroupBy(i => new { i.addr1, i.addr2 }) .Where(g => g.Count() > 1) .Select(g=>g.Key); GridView1.DataSource = duplicates; GridView1.DataBind(); 基于ADDR1和ADDR2在表中查找并列出了重复项.此代码的唯一问题是,它仅给我一对ADDR1和ADDR2,当我实际想显示记录的所有字段时,它们是重复的. (所有字段 有什么想法? 解决方案 要获得所有值,您可以在IGrouping 上使用ToList() var duplicates = mg.GroupBy(i => new { i.addr1, i.addr2 }) .Where
0 2024-04-18
编程技术问答社区