如何在LINQ查询中实现分页?实际上,如果可以模仿sql TOP函数,我会感到满意.但是,我确信无论如何都需要尽快提供完整的分页支持.
var queryResult = from o in objects
where ...
select new
{
A = o.a,
B = o.b
}
????????? TOP 10????????
Run Code Online (Sandbox Code Playgroud) 请考虑以下代码:
public class MyClass
{
public delegate string PrintHelloType(string greeting);
public void Execute()
{
Type[] types = new Type[] { typeof(string), typeof(float), typeof(int)};
List<PrintHelloType> helloMethods = new List<PrintHelloType>();
foreach (var type in types)
{
var sayHello =
new PrintHelloType(greeting => SayGreetingToType(type, greeting));
helloMethods.Add(sayHello);
}
foreach (var helloMethod in helloMethods)
{
Console.WriteLine(helloMethod("Hi"));
}
}
public string SayGreetingToType(Type type, string greetingText)
{
return greetingText + " " + type.Name;
}
...
}
Run Code Online (Sandbox Code Playgroud)
调用后myClass.Execute()
,代码打印以下意外响应:
Hi Int32 Hi Int32 Hi Int32
很显然,我希望 …
给出以下类型:
public interface IMyClass { }
public class MyClass : IMyClass { }
Run Code Online (Sandbox Code Playgroud)
我想知道如何将a转换List<MyClass>
为List<IMyClass>
?关于协方差/逆变主题,我并不完全清楚,但据我所知,我不能因此而明白地列出名单.
我只能提出这个微不足道的解决方案; 缺乏优雅,浪费资源:
...
public List<IMyClass> ConvertItems(List<MyClass> input)
{
var result = new List<IMyClass>(input.Count);
foreach (var item in input)
{
result.Add(item);
}
return result;
}
....
Run Code Online (Sandbox Code Playgroud)
你怎么能以更优雅/高效的方式解决它?
(请注意,我需要.NET 2.0解决方案,但为了完整性,我很高兴看到使用更新框架版本的更优雅的解决方案.)
我正在构建一个使用System.IO.File.Copy(...)函数复制文件的服务器应用程序.我的文件可能相当大,因此,如果机器崩溃,它很有可能在复制期间发生.
重新启动服务后,我应该能够获取复制任务并继续.如何检测服务器崩溃是否成功完成或中断了副本?
我目前的计划是将文件复制到临时名称,复制完成后将其重命名为最终名称.这样,文件命名能够在崩溃时携带状态信息.
你有什么好的/更好的建议吗?
编辑:目标操作系统是Win2003,因此事务NTFS不可用
我在简单的对象结构中表示了大量的地理数据,仅包含结构.我的所有字段都是有价值的.
public struct Child
{
readonly float X;
readonly float Y;
readonly int myField;
}
public struct Parent
{
readonly int id;
readonly int field1;
readonly int field2;
readonly Child[] children;
}
Run Code Online (Sandbox Code Playgroud)
数据很好地分成了Parent[]
-s的一小部分.每个数组包含几千个父实例.我有太多的数据来保存所有内存,所以我需要来回交换这些块到磁盘.(一个文件大约2-300KB).
什么是序列化/反序列化的最有效的方式Parent[]
,以一个byte[]
为dumpint磁盘和回读?关于速度,我对快速反序列化特别感兴趣,写入速度并不那么关键.
简单BinarySerializer
到足够好吗?或者我应该讨厌StructLayout
(参见接受的答案)?我不确定这是否适用于数组字段Parent.children
.
更新:对注释的响应 - 是的,对象是不可变的(代码更新),实际上children
字段不是值类型.300KB听起来并不多,但我有数以万计的文件,所以速度确实很重要.
我有一个IFRAME应该填充JavaScript的内容.如果内容在服务器上,我所要做的就是:
function onIFrameFill() {
myIframe.location.href = "HelloWorld.html";
}
Run Code Online (Sandbox Code Playgroud)
但我拥有的内容是在客户端生成的HTML页面,并表示为字符串(我对它没有太大影响).如何以编程方式填充iframe的内容?
我有一个大字典,其中键是十进制的,但System.Decimal的GetHashCode()非常糟糕.为了证明我的猜测,我运行了一个带有100.000 neigboring小数的for循环并检查了分布.100.000个不同的十进制数仅使用2个(两个!!!)不同的哈希码.
十进制表示为16个字节.就像Guid一样!但是Guid的GetHashCode()发行版非常好.如何在C#中将小数转换为Guid尽可能便宜? 不安全的代码没问题!
编辑:请求测试,所以这里是代码:
decimal d = 96000000000000000000m;
Dictionary<int, int> hashcount = new Dictionary<int, int>();
int length = 100000;
for (int i = 0; i < length; i++)
{
int hashcode = d.GetHashCode();
int n;
if (hashcount.TryGetValue(hashcode, out n))
{
hashcount[hashcode] = n + 1;
}
else
{
hashcount.Add(hashcode, 1);
}
d++;
}
Console.WriteLine(hashcount.Count);
Run Code Online (Sandbox Code Playgroud)
这打印7.我不记得给我2的起始小数.
给定查询的输出:
var queryResult = from o in objects
where ...
select new
{
FileName = o.File,
Size = o.Size
}
Run Code Online (Sandbox Code Playgroud)
您认为检测文件是否在queryResult中的最佳方法是什么?这是我对LINQ的蹩脚尝试:
string searchedFileName = "hello.txt";
var hitlist = from file in queryResult
where file.FileName == searchedFileName
select file;
var contains = hitlist.Count() > 0;
Run Code Online (Sandbox Code Playgroud)
必须有一种更优雅的方法来计算结果.
目标操作系统:Win2003
正如其他关于文件操作原子性的SO问题所述,Win32根本不是为事务设计的.我仍然想知道文件删除是否可以是非原子的.毕竟,它要么被删除,要么被删除.或者文件是否可以保留在NTFS文件系统上的任何其他中间状态,这是因系统崩溃或其他原因导致的?
给定以下具有ListControl行为的XAML代码:
<StackPanel>
<ItemsControl Name="_listbox" ItemsSource="{Binding ElementName=_userControl, Path=DataContext}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<DockPanel>
...
</DockPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
由于列表可以很长(100-200项),并且项目看起来相似,我认为如果每个项目都会在列表中显示它们的位置,那么在滚动期间对用户会有帮助.模板中的项目如何知道自己在列表中的位置?
.net ×6
c# ×6
linq ×2
.net-2.0 ×1
atomic ×1
atomicity ×1
covariance ×1
data-binding ×1
delete-file ×1
file ×1
guid ×1
hashcode ×1
iframe ×1
iterator ×1
javascript ×1
lambda ×1
list ×1
ntfs ×1
paging ×1
performance ×1
robustness ×1
struct ×1
unsafe ×1
wpf ×1
xaml ×1