我有一个方法,给出参数"bool sortAscending".现在我想使用LINQ根据此参数创建排序列表.我得到了这个:
var ascendingQuery = from data in dataList
orderby data.Property ascending
select data;
var descendingQuery = from data in dataList
orderby data.Property descending
select data;
Run Code Online (Sandbox Code Playgroud)
如您所见,两个查询仅在"升序"中有所不同."降".我想合并两个查询,但我不知道如何.有人有答案吗?
我一直在寻找互联网上的答案,但我发现的只有:
编辑:添加了一些项目以回答答案
对于IEquatable
Equals()
,GetHashCode()
,==
和!=
在一起.!=
via 减少冗余==
.对于IComparable
Equals()
,GetHashCode()
,<
,>
,<=
和>=
在一起.CompareTo() == 0
应该意味着 Equals() == true
所以我一直在想这个:
public bool Equals(T other)
{
if ((object)other == null)
{
return false;
}
return CompareTo(other) == 0;
}
Run Code Online (Sandbox Code Playgroud)
我忽略了什么或者这样可以吗?
我需要收集与某个目录下的模式匹配的文件,并确认位于该目录(或子目录)中的文件与该模式匹配。所以基本上我这样做:
Path('/foo').glob('bar/**/*.c')
返回“/foo/bar/file.c”。但如果我尝试另一种方式:
Path('/foo/bar/file.c').match('bar/**/*.c')
我只得到 False 回来。如果我删除“**”,它就会起作用:
Path('/foo/bar/file.c').match('bar/*.c')
如何在不改变模式的情况下使 glob() 和 match() 表现相同?我需要它递归地工作。