- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
LINQ 提供的 .ToLookup
函数有没有办法要求多个键?
我承认这乍一看似乎不直观,我预计没有实际的方法可以做到这一点,但我希望有人知道方法。
我基本上希望能够通过两个值进行查找,例如 string
和 int
,并检索具有这两个值的对象。
public class MyClass {
public string StringProp {get;set;}
public int IntProp {get;set;}
public object MoreData {get;set;}
}
public class Main {
public void Main() {
HashSet<MyClass> set = new HashSet<MyClass>();
set.Add(new MyClass {StringProp = "a", IntProp = 1, MoreData = null});
set.Add(new MyClass {StringProp = "c", IntProp = 4, MoreData = new object()});
set.Add(new MyClass {StringProp = "a", IntProp = 2, MoreData = "upupdowndown"});
set.Add(new MyClass {StringProp = "c", IntProp = 1, MoreData = string.Empty});
set.Add(new MyClass {StringProp = "c", IntProp = 4, MoreData = string.Empty});
// Using 'var' because I don't know how this would be defined.
// I recognize that this will not compile - but this is what I'm trying to do.
var lookup = set.ToLookup(x => x.StringProp && x.IntProp)
MyClass c = lookup["a", 1].First(); // Should return the first element
IEnumerable<MyClass> list = lookup["c", 4]; // Should return the 2nd and last elements
}
}
最佳答案
我会用 Tuple
来做这类事情:
var lookup = set.ToLookup(x => Tuple.Create(x.StringProp, x.IntProp));
MyClass c = lookup[Tuple.Create("a", 1)].First();
IEnumerable<MyClass> list = lookup[Tuple.Create("c", 4)];
关于c# - ToLookup 与多个键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10803185/
鉴于此: [ ("A","A122"); ("A","A123"); ("B","B122"); ("B","B123"); ("C","C122"); ] 是
我正在研究将可枚举序列转换为字典类型数据结构的 Enumerable.ToLookup API。可以在此处找到更多详细信息: https://msdn.microsoft.com/en-us/libr
LINQ 提供的 .ToLookup 函数有没有办法要求多个键? 我承认这乍一看似乎不直观,我预计没有实际的方法可以做到这一点,但我希望有人知道方法。 我基本上希望能够通过两个值进行查找,例如 str
考虑到下面的 C# 控制台应用程序代码,使用 我应该如何修改它以替换行: foreach (Product product in productsByCategory[category]) 通过代码行
我有一个如下所示的列表: var products = new List { new Product { Id = 1, Category = "Electronics", Value = 1
var tmpProjection = myCollection.ToLookup(t => t.SomeBoolValue); var listOneFinal = tmpProjection[tr
我正在尝试转 IEnumerable>进入 ILookup使用以下代码: var list = new List>() { new KeyValuePair("London", null),
我有一个巨大的点数据类型列表和一个相等大小的双列表。大小可能在 1000000 左右。两个列表都来自不同的类。 List XYPair; E.g. { (10,10),(10,10).......(
.ToLookup 返回 ILookup . ILookup还实现了接口(interface) IEnumerable> . .GroupBy 返回 IEnumerable> . ILookup 具有
LINQ ToDictionary 和 ToLookup 有什么区别?他们似乎在做同样的事情。 最佳答案 字典是一个 1:1 映射(每个键映射到一个值),并且字典是事后可变(可编辑)的。 查找是一个
我有一个每小时运行一次的 PowerShell 脚本,它基本上通过滴灌过程更新产品信息。该脚本在开发环境中失败,但在生产和质量中继续工作。故障点在使用 LINQ 的线路上。这是脚本: $product
我有以下产品列表 public sealed class Product { public int Id { get; set; } public string Category {
我是一名优秀的程序员,十分优秀!