小编Tho*_*mas的帖子

MongoDB C#从ID列表中获取所有文档

我有一个ID列表

List<string> Ids;
Run Code Online (Sandbox Code Playgroud)

我想检索匹配这些ID的所有文件.

网上有解决方案:

var ids = new int[] {1, 2, 3, 4, 5};
var query = Query.In("name", BsonArray.Create(ids));
var items = collection.Find(query);
Run Code Online (Sandbox Code Playgroud)

但他们都使用旧的C#驱动程序和(不再那么新)2.2.4驱动程序API已更改,我无法找到如何构建此查询.

.net c# mongodb

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

使用 LINQ 的 MongoDB C# 聚合

我有一个带有这些字段的 mongo 对象:

DateTime TimeStamp;
float    Value;
Run Code Online (Sandbox Code Playgroud)

如何在 C# 中使用 LINQ 获取聚合管道,以获取特定时间戳范围内 Value 的最小值、最大值和平均值?

我看过一些聚合示例,但我不太明白。有一个像这样的简单案例的例子肯定会(希望)让我理解它。

c# aggregation mongodb

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

这可能是 F# 6 索引器错误吗?

让我们考虑一下这段代码:

type T =
    {
        a: int
    }    

let d =
    [
        "a", [{a = 0}; {a = 1}; {a = 2}]
        "b", [{a = 3}; {a = 4}; {a = 5}]
    ] |> Map
Run Code Online (Sandbox Code Playgroud)

如果我想访问 a = 0 的数据:

d.["a"].[0].a  <- works
d["a"].[0].a   <- now works with F#6
d["a"][0]      <- returns {a = 0}
Run Code Online (Sandbox Code Playgroud)

d["a"][0].a    <- typecheck error This value is not a function and cannot be applied.
Run Code Online (Sandbox Code Playgroud)

如果我将表达式括在括号中:

(d["a"][0]).a  <- it works
Run Code Online (Sandbox Code Playgroud)

这是预期的结果,还是可能是 F#6 解析错误?

f#

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

在读取写入的内容之前,我是否需要“倒带”流?

有了这个代码:

using (var stream = new MemoryStream())
{
    thumbnail.Save(stream); // you get the idea
    stream.Position = 0; // <- is this needed?
    WriteStreamToDisk(stream);
}
Run Code Online (Sandbox Code Playgroud)

如果我有一个写入内存流的方法,然后我想将该流写入磁盘,我是否需要将位置设置为 0?

或者,流是否有不同的读/写指针?

.net c# stream

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

如何在 pycharm 中查看绘图?

我看到以下渲染器可用:

Default renderer: 'browser'
    Available renderers:
        ['plotly_mimetype', 'jupyterlab', 'nteract', 'vscode',
         'notebook', 'notebook_connected', 'kaggle', 'azure', 'colab',
         'json', 'png', 'jpeg', 'jpg', 'svg', 'pdf', 'browser',
         'firefox', 'chrome', 'chromium', 'iframe', 'iframe_connected',
         'sphinx_gallery']
Run Code Online (Sandbox Code Playgroud)

但我不知道如何让 pycharm 在 IDE 中显示输出,就像我用 matplotlib 做图形一样。

如何才能做到这一点?


编辑:

这是我使用的代码,来自 plotly 的示例:

fig = go.Figure(
    data=[go.Bar(y=[2, 1, 3])],
    layout_title_text="test"
)
fig.show()
Run Code Online (Sandbox Code Playgroud)

这将打开一个浏览器选项卡以显示在 pycharm 调试器中运行时的图形。


编辑2:

我从一年前看到一个类似的问题,没有解决方案:

PyCharm 中不显示 Plotly 图表

pycharm plotly

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

什么是错误“类型实例化涉及 byref 类型。” F# 中的解决方法是什么

我有一些代码包装 TA-Lib,很多包装器非常相似:

let sma (timePeriod: int) (data: float[]) =
    let mutable outStartIndex = 0
    let mutable outNbElement = 0

    let mutable smaData : float array = Array.zeroCreate (data.Length - timePeriod + 1)

    let retCode = Core.Sma(0, (data.Length - 1), data, timePeriod, &outStartIndex, &outNbElement, smaData)

    if retCode <> Core.RetCode.Success then
        invalidOp (sprintf "AssertRetCodeSuccess")

    let padding = Array.create (timePeriod - 1) System.Double.NaN
    Array.append padding smaData



let ema (timePeriod: int) (data: float[]) =
    let mutable outStartIndex = 0
    let mutable outNbElement = 0 …
Run Code Online (Sandbox Code Playgroud)

f#

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

从 .Net Core 3 迁移到 .Net 5 时请求 RuntimeIdentifier 时出现错误 NETSDK1097

我正在为 MacOS (osx-x64) 和 Windows (win-x64) 构建单个文件可执行文件。

我的命令行是:

dotnet 发布 --nologo -r osx-x64 -c Release /p:PublishSingleFile=true /p:PublishTrimmed=true

当迁移到 .Net 5 时,我现在收到此错误:

/usr/local/share/dotnet/sdk/5.0.100-preview.7.20366.6/Sdks/Microsoft.NET.Sdk/targets/Microsoft.NET.RuntimeIdentifierInference.targets(142,5):错误NETSDK1097:不是支持将应用程序发布到单个文件而不指定运行时标识符。您必须指定 RuntimeIdentifier 或将 PublishSingleFile 设置为 false。

所以我决定添加 RuntimeIdentifier 部分:

<RuntimeIdentifiers>osx-x64;win-x64</RuntimeIdentifiers>
Run Code Online (Sandbox Code Playgroud)

事实证明,这需要在每个子项目中......有点烦人,但没关系。

但现在,它不起作用:

发布到单个文件的应用程序需要使用应用程序主机。您必须将 PublishSingleFile 设置为 false 或将 UseAppHost 设置为 true。

另外,如果我在命令行上添加所有内容:

dotnet 发布 --nologo -c Release /p:PublishSingleFile=true /p:PublishTrimmed=true /p:UseAppHost=true /p:RuntimeIdentifier=osx-x64 -r osx-x64

我犯了同样的错误。看起来 dotnet 命令行上的配置被忽略了。

将运行时标识符添加到所有项目文件中,会产生:

错误 MSB6006:“dotnet”退出,代码为 1。

这并没有说明什么。

我的问题是:

.NET 5 的行为是否发生了变化(我找不到有关该主题的任何内容),或者预览是否已损坏?

.net-core

6
推荐指数
0
解决办法
1035
查看次数

有人可以在 F# 中澄清 monads/计算表达式及其语法吗

首先,我读过:

https://fsharpforfunandprofit.com/posts/elevated-world/

https://ericlippert.com/2013/02/21/monads-part-one/

我觉得我有所有的部分,但没有将它们连接在一起的部分,所以我有几个问题可能可以一起回答。

此外,F# 是我第一次遇到 monads/计算表达式。我来自 C 背景,没有使用其他函数式语言和这些概念的经验。

我想澄清一下术语:据我所知,monads 是模型,计算表达式是该模型的 F# 实现。那是对的吗?

为此,我似乎明白在声明表达式时会以这种方式调用一些底层功能(绑定、映射等),但在使用时需要完全不同的语法(let!、yield!等) . 但是,您仍然可以根据需要使用原始术语(Option.map 等)。这看起来很令人困惑,所以我很好奇我是否做对了,如果是这样,为什么同一件事有两种语法?

就实际用途而言,它在我看来如下所示:

  • 您描述了一个模型,在该模型中您将数据包装在您设计的任何容器中并提供函数(如绑定和映射),以便能够将容器链接到容器操作(如 Result<int, _> -> Result<int, _>) ,或非容器到容器的操作(如 int -> Result<int, _>)等。这是正确的吗?
  • 然后在该上下文中构建一个使用该模型的表达式以构建操作链。这是一个正确的假设,还是我错过了大局?

我经常使用 Result、Option 等,但我试图很好地了解底层机制。

作为实验,我从网上获取了这个:

type ResultBuilder () =
    member this.Bind(x, f) =
        match x with
        | Ok x    -> f x
        | Error e -> Error e
    member this.Return     x = Ok x
    member this.ReturnFrom x = x
Run Code Online (Sandbox Code Playgroud)

没有真正了解如何使用 Return / ReturnFrom,并以这种方式成功使用它:

ResultBuilder() {
    let! r1 = checkForEmptyGrid gridManager …
Run Code Online (Sandbox Code Playgroud)

monads f#

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

调试器中的ASP.NET核心命令行参数

当我使用net 4.7代码调试一些asp.net时,我可以在调试器中指定一些参数,主函数是获取它们.

我意识到.net核心并没有发生这种情况; 我可以在调试器选项卡中的"应用程序参数"中放置我想要的任何内容,应用程序永远不会看到该数据.

这是另一个VS'界面不匹配.net核心的情况吗?还是我错过了一些明显的东西?


添加更多细节:

在此输入图像描述

在此输入图像描述

asp.net-core

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

以绘图方式创建 3d 曲面图

我有以下数据:

在此处输入图片说明

我正在尝试绘制 x=long, y=short, z=balance

我是这样做的:

fig.add(go.Scatter3d(x=results['long'], y=results['short'], z=results['balance']))
Run Code Online (Sandbox Code Playgroud)

我得到了类似的东西:

在此处输入图片说明

我真正要找的是一个表面,就像这个例子:

在此处输入图片说明

所以,按照示例的代码,我做了:

fig.add_surface(x=results['long'], y=results['short'], z=results['balance'], row=2, col=1)
Run Code Online (Sandbox Code Playgroud)

但:

在此处输入图片说明

它不仅不显示任何数据,而且似乎完全忽略了子图布局并绘制了所有内容。

这是完整的代码:

fig = make_subplots(rows=2, cols=1, specs=[[{'type': 'xy'}], [{'type': 'scene'}]])

fig.add_trace(go.Scatter(x=series1['timestamp'], y=series1['data'], line_color='red', name='series 1'), row=1, col=1)
fig.add_trace(go.Scatter(x=series2['timestamp'], y=series2['data'], line_color='blue', name='series 2'), row=1, col=1)
fig.update_yaxes(title_text="USD", row=1, col=1)

fig.add_surface(x=results['long'], y=results['short'], z=results['balance'], row=2, col=1)
fig.show()
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是:

  • 如何根据我拥有的数据创建平滑的表面?
  • 我错过了什么关于布局?

python plotly

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

标签 统计

c# ×3

f# ×3

.net ×2

mongodb ×2

plotly ×2

.net-core ×1

aggregation ×1

asp.net-core ×1

monads ×1

pycharm ×1

python ×1

stream ×1