如何在C#中创建自定义的普通数字-文本比较器,对数字/字符串列表进行排序?
我有数字文本列表,我想创建常见的自定义比较逻辑,以使用C#对此列表进行排序.例如 var numericList = new List{"100", "--", "-0.98", "N/A", "0.00", "-888"}; var stringList = new List {"Smith", "--", "Peter", "", "Jim", "Ken", "NA"}; 包含一些特殊字符,例如 - ,n/a,空间等. 对于NemerItlist上升 - > n/a, - ,-888,-0.98,0.00,100 for StringList上升 - > i创建了按照自定义比较逻辑进行的,该逻辑执行某种级别的排序,但与预期结果不匹配.请建议我实现这一目标. public class NumberTextComparer : IComparer { public int Compare(strin
8 2024-04-26
编程技术问答社区
无法将void转换为列表,返回排序列表
我想返回一个排序的列表,但它给了我这个错误.我该怎么办? public class sortA : sortMethod { public override List Sort(List A) { //List Asorted = new List(); //Asorted = A.Sort(){ }; return A.Sort(); } } 解决方案 返回A.Sort不返回排序的数组,它返回Sort命令的返回值.由于Sort是void方法,因此它实际上没有返回,因此错误消息. ,要返回排序的数组,您需要在之后将其返回您对其进行排序: public class sortA : sortMethod { public override List Sort(List A) { A.Sort();
14 2024-04-26
编程技术问答社区
如何正确实现有限排序的列表
我想实现一个固定大小的列表,该列表完全包含n值.我编写了一些代码,有时会起作用,但通常会产生不正确的结果.我试图多次更改它,但没有任何成功. 对于我的小测试,一切都很好,但是当我尝试在big数据上测试它(不是很大,但是生成并且无法手动检查),我会得到不正确的结果. 这里有什么问题?我什至尝试用lock将方法包裹Add,但这无济于事,所以这不是多线程的情况: public class LimitedSizeSortedList : IEnumerable { private readonly IComparer _comparer; private readonly T[] _items; private readonly Dictionary _itemsIndices; public int Size => _items.Length; public int Count { get; pr
8 2024-04-26
编程技术问答社区
寻找重复的字符串数组
我有一个庞大的字符串数组列表,在此List中,可以有所有相同值的数组(可能具有不同的索引).我想查找并计算这些重复字符串阵列,并具有Dictionary int是计数(但是,如果有比使用词典更好的方法,我有兴趣听到).有人对如何实现这一目标有任何建议吗?所有输入都非常感谢,谢谢! 解决方案 您可以使用linq GroupBy与IEqualityComparer进行比较string[] var items = new List() { new []{"1", "2", "3" ,"4" }, new []{"4","3", "2", "1"}, new []{"1", "2"} }; var results = items .GroupBy(i => i, new UnorderedEnumerableComparer
16 2024-04-26
编程技术问答社区
对有特殊字符的可数据化字段进行排序
我有一个datatable,这些>有一些我从访问数据库中的表中填充的列.我拥有的一个特殊列是SN,它是这样的数据: SN _____ -1 1.a 1.a 1.b 10 1000 1001 1002 11.a 11.b 13.a 2.a 2.b 2.c 2000 2001 21.a 22.b 3.a 3.b 3.c 4000 4001 4.a SN字段的字符串格式,当我对数据进行排序时,结果如上所述. 但是我想在这里拥有的是分类的列,我希望是这样的东西: SN _____ -1 1.a 1.a 1.b 2.a 2.b 2.c 3.a 3.b 3.c 4.a 10 11.a 11.b 13.a 21.a 22.b 1000 1001 1002 2000 2001 4000 4001 实现这一目标怎么办? 更新:我添加了Nore数据,以清楚地说.实施建议的代码后我获得的结果是: SN _____ -1 1.a 1.a 1.b 10 11.a 11.
12 2024-04-26
编程技术问答社区
按字母对列表排序,但忽略特殊字符
我的问题: 我有一个我想通过sortname排序的列表.效果很好.但是我在开始时有一些特殊的字符命名.我该怎么办,没有观察到符号? sortname with符号的示例:(替代)商务银行 我的sordfunction: cmembers.Sort(delegate (ChamberMembers x, ChamberMembers y) { if (x.companysortName == null && y.companysortName == null) return 0; else if (x.companysortName == null) return -1; else if (y.companysortName == null) return 1; else retur
8 2024-04-26
编程技术问答社区
根据另一个固定列表对项目列表进行排序
我在C#中非常初学者 我有 的列表 private List mXMLProdcutsIDs = new List(); mxmlproductsids就像 {"megapack", "levelpack","bikepack"}. 有时我得到another list which is in random order,{"megapack", "levelpack","bikepack"} 我想根据mXMLProductIDs列表顺序求解该列表 解决方案 您可以使用原始列表中的字符串索引来定义项目顺序: var result = anotherList.OrderBy(s => mXMLProdcutsIDs.IndexOf(s)); 缩短版本: var result = anotherList.OrderBy(mXMLProdcutsIDs.IndexOf); 请记住,该结果将为IEnumerable
20 2024-04-26
编程技术问答社区
我如何在C#中为一个分组的集合创建一个程序化的排序顺序?
我有此代码,可以通过字符串字段进行集合和组: var groupByIssueType = issues.GroupBy(r => r.IssueType); 我现在想循环遍历每个组,但我想以指定顺序进行操作.就像是 . . foreach (var issueType in groupByIssueType) { } 问题是该顺序不是字母,所以我不能只做 OrderBy(r=>r.Name) 或类似的东西. . .我需要一种方法来按键进行分组集合,但使用自定义排序算法 所以,可以说我有我的发行型 "城市级别" "国家一级" "国家级别" 我想循环浏览"订单国家,州,城市 中的groupbyissuetype collection 这样做的最好方法是什么? 解决方案 您需要编写使用自定义排序订单的IComparer 例如: static string[] order = { ... };
8 2024-04-26
编程技术问答社区
如何实现IComparable对一个自定义类型的数组进行排序?
我为我的C#类编写了一个程序,需要弄清楚如何实现可观的可观,以便能够对自定义类型的数组进行分类.它没有错误地编译,但是在运行时会引发例外: system.invalidoperationException:无法比较数组中的两个元素. ---> system.argumentException:至少一个对象必须实现微观的. 我已经搜索了几个小时以找到无济于事的解决方案.关于这个主题有很多信息,但我可能只是想过它.我将发布该程序,如果有人可以用解释向我指出正确的方向,我将永远感激,因为截止日期正在迅速接近. P.S.这是我第一次在这里发布,所以在批评我的缺点时请保持温柔. using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace HighScores4 { class Pr
12 2024-04-26
编程技术问答社区
用众所周知的静态类型法在运行时改变Linq To Sql的排序顺序
这不是关于"我如何动态分类(基于任意用户提供的字段)的另一个问题?' 问题是 - 当我提前知道潜在的情况时,我该如何更改排序订单? (因此,避免反射/自定义表达式建筑通常与真正动态分类相关联.) 以较大查询的此子查询(此示例缩短): (from solutionIds in context.csExtendedQAIncident_Docs where solutionIds.tiRecordStatus == 1 && (from solutionProductAssocation in context.csProductDocs where solutionProductAssocation.iSiteId == Settings.Current.WebUtility().Onyx.SiteId && (from allowedProduct in context.KB_User_Allowed_Produ
16 2024-04-26
编程技术问答社区
按搜索标准分类 C# LINQ
i有一个LINQ查询,该查询在多个字段中搜索字符串(使用正则态度).我想根据找到文本的字段对结果进行排序. 目前我有: var results = from i in passwordData.Tables["PasswordValue"].AsEnumerable() where r.IsMatch(i.Field("Key").Replace(" ","")) || r.IsMatch(i.Field("Username").Replace(" ","")) || r.IsMatch(i.Field("Other").Replace(" ","")) orderby i.Field("Key"), i.Field("Other"), i.Field
4 2024-04-26
编程技术问答社区
不能按升序或降序对表头进行排序
默认情况下,View显示一个很好的表格,但无法通过单击"上升"或"下降顺序"的表标头来显示表列.标题列箭头上下单击,但数据保持不变.我正在使用jQuery jtable,默认情况下启用了排序. 可以使用jQuery? 做到这一点 这是我的检查代码: 查看: $(document).ready(function () { $('#TopPlayedInVenueContainer1').jtable({ title: 'Top Tracks Played Records', paging: true, pageSize: 100, sorting: true, defaultSorting: 'Date ASC', actions: { listAction: '@Url.Action("TopPlayedInVenueList1")'
12 2024-04-26
编程技术问答社区
启用虚拟模式时如何对DataGridView的数据进行排序
我已经完成了带有虚拟数据加载的DataGridView的代码,并且它正在工作,但是当我单击列标头列时,我也希望排序也可以工作.我从这个线程http://stackoverflow.com/questions/17087074/c-sharp-datagridview-virtual-mode-enable-sorting 读取了想法 ,但仍无法实现如何在启用datagridview虚拟模式时启用排序. 在这里,我发布了完整的代码,并为发布我的大型代码而道歉.因此,请一些人纠正我的代码或给我一个小的代码部分,这有助于我对网格数据进行分类以及虚拟数据加载.单击列标题时,排序字形也应该出现. 这是完整的代码 public partial class Form1 : Form { private string connectionString = "Initial Catalog=Test1;Data Source=BBATRIDI
8 2024-04-26
编程技术问答社区
关于在C#中对多维数组进行排序
我正在尝试找出一种正确对一堆不同的阵列清单进行排序的方法. 我在阵列列表中发布内容文章,每个值[0]将与其他所有值[0]相关.等等.每个元素构成完整内容项的集体部分. 现在,最后一个元素,即受欢迎的是收到的点击量.我如何 是否会根据受欢迎程度进行某种内容项,而无需混合每篇文章的HTML? * 编辑我受到工作中的.NET 2.0框架的限制* 以下是代码...谢谢. public class MultiDimDictList : Dictionary { } myDicList.Add("fly", a_fly); myDicList.Add("img", a_img); myDicList.Add("bar", a_bar); myDicList.Add("meter", a_meter); myDicList.Add("block", a_block); myDicList.Add("popularity", a_pop)
10 2024-04-26
编程技术问答社区
RichTextBox-随机排序行
我想编写一个将我从源复制并粘贴到RichTextbox区域的随机文本行的应用程序. 但是,有一个条件 - 文本是格式化的(有些单词是粗体,下划线等).有什么建议吗?它应该如何? 我认为我应该使用RichTextBox.Rtf或其他东西,但我确实是初学者,我感谢每个提示或示例代码. 谢谢 解决方案 这有点棘手.您可以像这样检索格式的RTF文本行 string[] rtfLines = new string[richTextBox1.Lines.Length]; for (int i = 0; i
10 2024-04-26
编程技术问答社区
在C#中实现对象列表的排序以及改变对象索引的方法
说我有一个对象人列表 { public string Name {get; set;} public string Gender {get; set;} } 我想要的是创建一个可以通过使用称为orderIndex的属性订购的列表.因此,我将此属性添加到人对象中: { public string Name {get; set;} public string Gender {get; set;} public int OrderIndex {get; set;} } 此OrderIndex属性的目的是将人对象放在列表中的特定索引中,以对对象进行排名更高. ,但我非常担心我必须强的逻辑数量.因为说我有3人对象 名称:戴夫(Dave),性别:男性,OrderIndex:1 姓名:阿曼达,性别:女性,OrderIndex:2 名称:Trevor,性别:男性,OrderIndex:3 如果我减少了Trevor的顺序索引,我还必须确保,Aman
14 2024-04-26
编程技术问答社区
如何用Regex表达式匹配宽度和高度大小,并在SQL或C#中使用Sort By来建立一个下拉菜单?
我有一个SQL查询,它将检索下表,但是我想在下拉式选择中正确订购板尺寸(小到大).我正在使用 c#从对象构建下拉选择. 这是当前SQL查询返回的内容. DECLARE @StockID int = 680 DECLARE @VariationParent int = (SELECT TOP 1 StockParent_ParentId FROM StockVariations SV INNER JOIN FinGoodsParent FGP ON FGP.Id = SV.StockParent_ChildId WHERE StockParent_ChildId = @StockID AND SV.IsDeleted = 0 AND FGP.IsDeleted = 0 AND FGP.Publish = 1) SELECT DISTINCT AV.ID, AV.AttrValue, AV.AttributeTypes_Id 'AttributeTypeID',
10 2024-04-26
编程技术问答社区
List<string> 的自定义排序
我有一个List,其中条目是位置,例如" 010101"," 010102"," 010201",...,以下含义: 前两个字符:地板 接下来的两个字符:车道 最后两个字符:进入车道 普通排序显示以下列表: 010101 010102 010103 010201 010202 020101 020102 020201 020202 020203 020204 ... 我想要一个自定义排序,其中: 在" 01"地板上,分类以正常方式进行: 010101 010102 010103 010201 010202 在" 02"地板上,分类是在车道上以相反的方式进行的,但对于车道的入口而不是: 之类的东西 ... 020201 020202 020203 020204 020101 020102 在网站上,我找到了IEnumerable作为解决方案,但这仅适用于List,其中T是
12 2024-04-26
编程技术问答社区
试图对数据网格视图列进行排序时显示错误信息
我有一个带有列的DataGridView customername customerimage price 当我单击"列标头"时,将对整个DataGridView进行排序,以便我尝试过此链接中给出的代码 http://msdn.microsoft.com/it-it/library/0868ft3z%28v = vs.80%29.aspx private void dataGridView1_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) { /// i have just put the code given in that link if (new
12 2024-04-26
编程技术问答社区