重要提示:这不是LINQ-to-SQL问题.这是对象的LINQ.
简短的问题:
LINQ中是否有一种简单的方法可以根据对象的键属性从列表中获取不同的对象列表.
长问题:
我正在尝试对具有键作为其属性之一的对象Distinct()列表执行操作.
class GalleryImage {
public int Key { get;set; }
public string Caption { get;set; }
public string Filename { get; set; }
public string[] Tags {g et; set; }
}
Run Code Online (Sandbox Code Playgroud)
我有一个Gallery包含的对象列表GalleryImage[].
由于web服务的工作方式[原文如此],我有GalleryImage对象的重复
.我认为用它Distinct()来获得一个独特的列表是一件简单的事情.
这是我想要使用的LINQ查询:
var allImages = Galleries.SelectMany(x => x.Images);
var distinctImages = allImages.Distinct<GalleryImage>(new
EqualityComparer<GalleryImage>((a, b) => a.id == b.id));
Run Code Online (Sandbox Code Playgroud)
问题是这EqualityComparer是一个抽象类.
我不想:
GalleryImage因为它是生成的IEqualityComparer,如下所示是否有一个 …
我有一个大小为X的面板Y.我想放置N个矩形,随机大小,在这个面板上,但我不希望它们中的任何一个重叠.我需要知道这些矩形的X,Y位置.
算法,有人吗?
编辑:所有N个矩形在开始时都是已知的,可以按任何顺序进行选择.这会改变程序吗?
我必须在内存中保留数千个字符串,以便在Java中以串行方式访问.我应该将它们存储在数组中还是应该使用某种List?
由于数组将所有数据保存在连续的内存块中(与Lists不同),使用数组存储数千个字符串会导致问题吗?
C#扩展方法的第一个参数是调用扩展方法的实例.我已经采用了一种成语,而不是在其他地方看到它,称这个变量为"自我".如果其他人也在使用它,我也不会感到惊讶.这是一个例子:
public static void Print(this string self)
{
if(self != null) Console.WriteLine(self);
}
Run Code Online (Sandbox Code Playgroud)
但是,我开始看到其他人将该参数命名为"@this",如下所示:
public static void Print(this string @this)
{
if(@this != null) Console.WriteLine(@this);
}
Run Code Online (Sandbox Code Playgroud)
作为第三种选择,有些人根本不喜欢成语,说"自我"和"@this"不提供任何信息.我想我们都同意,有时候参数的名称是明确的,有意义的,特定于其目的,这比"自我"或"@this"更好.有些人进一步说,你总能拿出一个更有价值的名字.所以这是另一个有效的观点.
你看过其他什么成语?你喜欢什么成语,为什么?
我看到.NET和JVM的所有这些新语言.如何开始制作一个?
我找不到有关JVM或MSIL规范的任何好文档.
编辑
我已经知道如何解析,我更感兴趣的是有这么多人制作基于这些平台的新语言.
在谈到UDP时,我知道"连接"这个词并不合适,但......
服务器(具有已知IP的服务器)如何通过Internet将其UDP数据包发送到NAT后面的客户端?
例如:假设客户端使用TCP上的某些消息传递连接并验证服务器.此时,服务器已准备好通过UDP开始将数据流传输到客户端,但是服务器如何知道在哪里寻址UDP数据包,以便他们能够通过任何NAT路由器找到客户端?
如果客户端拳头通过UDP发送"我已准备好流媒体请"消息,NAT路由器是否会保持端口打开,以便服务器可以使用其UDP数据流进行响应?
或者我在这里偏离轨道?
我正在尝试使用C#2008或QT4编写一个非常简单的照片编辑器.
如何像Photoshop一样制作可调整大小的矩形选择工具?
我正在尝试通过一个公共的控制器文件获取存储在cookie中的用户ID,我可以在整个站点访问该文件.
我创建FunctionsController了一个控制器,内容如下:
public static int loggedinUser()
{
return Convert.ToInt32( request.Cookies["userid"].Value);
}
Run Code Online (Sandbox Code Playgroud)
即使我尝试过,我也无法申请任何Cookie项目:
HttpRequestBase request = controllerContext.HttpContext.Request;
Run Code Online (Sandbox Code Playgroud) 迁移无疑比仅仅启动phpMyAdmin和更改架构更好(就像我在php时期所做的那样),但在使用它们一段时间后,我认为它们存在致命缺陷.
版本控制是一个已解决的问题.迁移的主要功能是保留数据库更改的历史记录.但是为每次更改存储不同的文件是一种笨拙的方式来跟踪它们.如果post.rb要添加新的虚拟属性,则不要创建新版本(或表示增量的文件) - 当您要添加新的非虚拟属性时,为什么要创建新的迁移?
换句话说,就像检查post.rb版本控制一样,为什么不检查schema.rb到版本控制并直接对文件进行更改?
这在功能上与为每个delta保留文件相同,但使用起来要容易得多.我的心理模型是"我希望表X有这样的列(或者我真的希望模型X具有这样的属性)" - 为什么你必须从这里推断如何从现有的模式中获得; 只是打开schema.rb并给表X正确的列!
但即使是类包装表的想法也是一个实现细节!为什么我不能打开post.rb并说:
Class Post
t.string :title
t.text :body
end
Run Code Online (Sandbox Code Playgroud)
如果你使用这样的模型,你必须决定如何处理现有数据.但即便如此,迁移也是过度的 - 当您迁移数据时,当您使用迁移down方法时,您将失去保真度.
无论如何,我的问题是,即使你想不出一个更好的方法,也不是有点粗略的迁移?
我的网站上有一个文本框,我需要存储用户输入的数据库,并在以后检索它.我需要完全按照用户输入的方式存储它,包括特殊字符,回车等.
我应该在PHP中使用哪个进程将其存储在我的数据库字段(这是一个'text'字段)中?我应该使用PHP的html_encode或类似的东西吗?
谢谢.
编辑:我还需要存储正确的格式,即选项卡和多个空格.