小编Men*_*nol的帖子

如何绘制可以处理非常高数据量的JavaScript图表?

我试过但找不到类似的文章,如果我错过任何一个,请道歉.

我正在开发一个基于ASP.Net MVC4的项目.

我们需要为非常大量的数据绘制图表(使用AJAX,JavaScript).

例如,我们需要绘制具有75,000多个数据点的波形图.

到目前为止,我们已经使用JQWidgets实现了该解决方案.这通常适用于我们的初始测试,但是当图表显示大量数据时,图表会花费很长时间来加载.

我们也尝试过HighCharts,但它也开始因大量数据而减速(此时不能过滤或汇总数据).

请理解我们需要显示大量数据,因为我们需要可视化传感器生成的波形.

我确信我不是唯一一个遇到过这个问题的人,所以我想知道你们中是否有人能够解决这个问题.

javascript ajax charts asp.net-mvc-4

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

为什么IEnumerable变量的项目在指向IEnumerable时无法更新,但在指向已实现的集合时有效

我已经阅读了IEnumerable中的更新对象<>未更新?更新IEnumerable中的项目属性但该属性没有保持设置?但我想了解当我尝试更新IEnumerable中的项目时它为什么不起作用.

我不明白的是:

当源集合指向Ienumerable时,我无法使用.ElementAt()方法更新Ienumerable的项目.

但是,当源Ienumerable指向列表时,相同的代码可以正常工作.

1有人可以帮助解释幕后发生的事情吗?

2为什么C#编译器没有(或不能)错误?

3当我们必须在需要更新时将Ienumerables转换为Lists时,使用Ienumerable来定义类型也不会失效吗?

我相信我在这里遗漏了一些东西,如果有人可以解释幕后发生的事情,我会很高兴.

这是我的代码:

1 - 收藏不会更新:

class Person
{
    public string Name { get; set; }
}

class Program
{
    static void Main(string[] args)
    {
        var numbers = new int[] {1,2,3};

        var people = numbers.Select(n => new Person { Name = "Person " + n.ToString() });


        for (int i = 0; i < people.Count(); i++)
        {
            people.ElementAt(i).Name = "New Name";
        }

        people.ToList().ForEach(i => …
Run Code Online (Sandbox Code Playgroud)

c# collections ienumerable list

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

当唯一的区别是可选参数时,为什么 C# 允许重载?

为什么 C#/Framework 允许我使用可选参数来创建它不允许的重载?

public static TOut? NullableConvert<TOut>(object source, Func<object, TOut> converter) where TOut : struct
{
}

public static TOut NullableConvert<TOut>(object source, Func<object, TOut> converter) where TOut : class
{
}
Run Code Online (Sandbox Code Playgroud)

当我尝试上述重载时,出现以下我同意的错误:

错误 CS0111 类型“DataHelpers”已经定义了一个名为“NullableConvert”的具有相同参数类型的成员


但是,如果我向如下所示的方法之一添加一个可选参数,那么我就可以使用这些重载(请注意object x = null)。

public static TOut? NullableConvert<TOut>(object source, Func<object, TOut> converter) where TOut : struct
{
}

public static TOut NullableConvert<TOut>(object source, Func<object, TOut> converter, object x = null) where TOut : class
{
}
Run Code Online (Sandbox Code Playgroud)

当我按照运行时运行时解决了没有可选参数的正确重载

long? x = DataHelpers.NullableConvert(DBNull.Value, …
Run Code Online (Sandbox Code Playgroud)

c# overloading .net-core

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

是否有更有效的方法来展平DateTime对象的Date部分而不是创建新的DateTime实例?

我有一系列日期时间,我需要将日期药水弄平,只保留时间值.

注意:做这种奇怪事情背后的原因是我们使用第三方组件使用Date Part来做出某些决定.此外,我找到了一种不同的解决方法,但我仍然很好奇是否有更有效的方法来实现这一目标.

我能想到的唯一方法是创建具有相同日期但具有来自各个源DT对象的时间的新DateTime对象.

这是我根本不喜欢的方法的一个简单示例.

    DateTime flattenDts(DateTime input)
    {
        return new DateTime(1, 1, 1, input.Hour, input.Minute, input.Second);
    }
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,这看起来并不是很好.特别是当有数百个日期时间值时.

有没有更有效的方法来实现这一目标?

编辑: 请注意我不能使用timespan作为第三方lib.只会采用DateTime参数.

c# datetime

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