以下代码编译:
using Microsoft.SharePoint.Client
class Dummy()
{
void DummyFunction(ClientContext ctx, ListCollection lists)
{
Context.Load(lists, lc => lc.Include(l => l.DefaultViewUrl);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当切换到使用别名时,Include函数存在问题,这是一种扩展方法:
using SP = Microsoft.SharePoint.Client
class DummyAliased()
{
void DummyFunction(SP.ClientContext ctx, SP.ListCollection lists)
{
/* Does not compile: */
Context.Load(lists, lc => lc.Include(l => l.DefaultViewUrl);
/* Compiles (not using function as generic) */
Context.Load(lists, lc => SP.ClientObjectQueryableExtension.Include(lc, l => l.DefaultViewUrl));
}
}
Run Code Online (Sandbox Code Playgroud)
仍然可以使用Include函数,但不能作为扩展方法.有没有办法将它用作扩展方法而不取消使用using指令?
在PowerShell(版本2)中创建以下哈希表数组后:
$array = @()
$array += @{a = 1; b = 5}
$array += @{a = 3; b = 4}
$array += @{a = 5; b = 9}
$array += @{a = 7; b = 2}
Run Code Online (Sandbox Code Playgroud)
对Sort-Object的所有以下调用都返回相同的{a,b}序列:{5,9},{7,2},{1,5},{3,4}:
$array | Sort-Object
$array | Sort-Object -Descending
$array | Sort-Object a
$array | Sort-Object b
$array | Sort-Object "a"
$array | Sort-Object -Property a
$array.GetEnumerator() | Sort-Object
$array.GetEnumerator() | Sort-Object a
Run Code Online (Sandbox Code Playgroud)
如果$array直接调用它,它将按照输入的顺序返回对象,因此排序正在改变顺序.但也许它没有比较器所以只是把每个对象视为平等?
目标是对所有对象进行排序.我很好地处理涉及备用自定义对象,备用集合和/或备用排序例程的变通方法.
编辑:为了澄清我想要实现的目标,这将是C#中的一个粗略的等价物
class MyClass {
public int a;
public …Run Code Online (Sandbox Code Playgroud) 对于以下TypeScript(使用rxjs):
getRegularData(): Observable<MyData> {
return WS.loadRegularData();
}
getAlternateData(): Observable<MyData> {
return WS.loadAlternateData();
}
Run Code Online (Sandbox Code Playgroud)
如何实现新方法以满足以下伪代码:
getData(): Observable<MyData> {
// try to use getRegularData, and return observable for result.
// if getRegularData returns null, get data from getAlternateData()
// instead and return observable for result.
}
Run Code Online (Sandbox Code Playgroud) 在 .NET System.Text.RegularExpressions.Regex中,如果^将 和$添加到正则表达式中以查找精确匹配,则如果将终止符\n附加到正在验证的字符串,则 IsMatch 仍返回 true。
例如,以下代码:
Regex regexExact = new Regex(@"^abc$");
Console.WriteLine(regexExact.IsMatch("abc"));
Console.WriteLine(regexExact.IsMatch("abcdefg"));
Console.WriteLine(regexExact.IsMatch("abc\n"));
Console.WriteLine(regexExact.IsMatch("abc\n\n"));
Run Code Online (Sandbox Code Playgroud)
返回:
true
false
true
false
Run Code Online (Sandbox Code Playgroud)
除了第一个之外,对于上述所有情况都会返回 false 的正则表达式是什么?