我试过但找不到类似的文章,如果我错过任何一个,请道歉.
我正在开发一个基于ASP.Net MVC4的项目.
我们需要为非常大量的数据绘制图表(使用AJAX,JavaScript).
例如,我们需要绘制具有75,000多个数据点的波形图.
到目前为止,我们已经使用JQWidgets实现了该解决方案.这通常适用于我们的初始测试,但是当图表显示大量数据时,图表会花费很长时间来加载.
我们也尝试过HighCharts,但它也开始因大量数据而减速(此时不能过滤或汇总数据).
请理解我们需要显示大量数据,因为我们需要可视化传感器生成的波形.
我确信我不是唯一一个遇到过这个问题的人,所以我想知道你们中是否有人能够解决这个问题.
我已经阅读了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#/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) 我有一系列日期时间,我需要将日期药水弄平,只保留时间值.
注意:做这种奇怪事情背后的原因是我们使用第三方组件使用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# ×3
.net-core ×1
ajax ×1
charts ×1
collections ×1
datetime ×1
ienumerable ×1
javascript ×1
list ×1
overloading ×1