小编Kin*_*sin的帖子

将IGrouping转换为IDictionary

作为数据库查询的结果,我有以下分组:

5: Key1
3: Key2, Key3, Key4
2: Key5
1: Key6, Key7
Run Code Online (Sandbox Code Playgroud)

我想x通过分组键将顶部x(而用户定义)作为字典.

对于前三名,我想要一本词典

Key1: 5
Key2: 3
Key3: 3
Key4: 3
Key5: 2
Run Code Online (Sandbox Code Playgroud)

对于我想要的前2名

Key1: 5
Key2: 3
Key3: 3
Key4: 3
Run Code Online (Sandbox Code Playgroud)

并且仅限前1名

Key1: 5
Run Code Online (Sandbox Code Playgroud)

我怎样才能将其IGrouping<int, string>转换为IDictionary<string, int>.注意:密钥是唯一的.

c# linq dictionary group-by

2
推荐指数
1
解决办法
1865
查看次数

结合使用ErrorBoundary和异步生命周期功能

我想构建一个React组件,该组件在上异步加载数据componentDidMount

这是当前函数的样子(用编写TypeScript):

async componentDidMount(): Promise<void> {
    try {
        const { props: { teamId }, state: { } } = this;
        const awaitableData = await UrlHelper.getDataAsync("some-fancy-url");

        // ... do something with awaitableData
    } catch(e) {
        console.log("Some error occured");
        throw e;
    }
}
Run Code Online (Sandbox Code Playgroud)

所述render-function返回标记包裹在一个ErrorBoundary组件,它已componentDidCatch实现。但是,当等待的呼叫被拒绝并且最终出现在catch-block中时,就永远不会调用/触发该事件。

我在这里想念什么?

javascript asynchronous typescript reactjs

2
推荐指数
2
解决办法
1371
查看次数

如何检查字符串是否包含 C# string.Format 占位符

如何简单地检查字符串是否包含{x}x可以是任何数字)?

我想有一些简单的正则表达式可以做到这一点。

"This string contains {0} a placeholder".HasPlaceholder == true
Run Code Online (Sandbox Code Playgroud)

"This string contains no placeholder".HasPlaceholder == false
Run Code Online (Sandbox Code Playgroud)

c# regex string string-formatting

1
推荐指数
1
解决办法
6938
查看次数

onbeforeunload在React组件内部不起作用

我有一个简单的react-component,用户可以在其中编辑数据。由于可能更改的值可能会花费一些时间,因此我想请用户确认是否在未保存更改的情况下离开页面。

在组件的构造函数中,我调用:

window.addEventListener("beforeunload", this.handleWindowBeforeUnload);
Run Code Online (Sandbox Code Playgroud)

我也试过

window.onbeforeunload = this.handleWindowBeforeUnload;
Run Code Online (Sandbox Code Playgroud)

handleWindowBeforeUnload如下所示:

private handleWindowBeforeUnload = (ev: BeforeUnloadEvent): string => {
    return "Unsaved changes. Are you sure?";
}
Run Code Online (Sandbox Code Playgroud)

但是,设置断点会命中。但是,没有任何迹象表明离开可能是危险的。也尝试使用最新的Firefox,但没有任何反应。如MDN所述,我也尝试过

// Cancel the event as stated by the standard.
e.preventDefault();

// Chrome requires returnValue to be set.
e.returnValue = '';

// return something to trigger a dialog
return null; // ''; // "Do something"
Run Code Online (Sandbox Code Playgroud)

仍然没有任何反应。我在这里做错了什么?

javascript typescript reactjs

1
推荐指数
1
解决办法
2456
查看次数