相关疑难解决方法(0)

ILookup <TKey,TVal>与IGrouping <TKey,TVal>

我一直有麻烦关节之间的差异ILookup<TKey, TVal>IGrouping<TKey, TVal>,并很好奇,如果我理解正确了.LINQ通过生成IGrouping项目序列来复杂化问题,同时也为我提供了ToLookup扩展方法.所以在我仔细观察之前感觉它们是一样的.

var q1 = 
    from n in N
    group n by n.MyKey into g
    select g;
// q1 is IEnumerable<IGrouping<TKey, TVal>>
Run Code Online (Sandbox Code Playgroud)

这相当于:

var q2 = N.GroupBy(n => n.MyKey, n => n);
// q2 is IEnumerable<IGrouping<TKey, TVal>>
Run Code Online (Sandbox Code Playgroud)

这看起来很像:

var q3 = N.ToLookup(n => n.MyKey, n => n);
// q3 is ILookup<TKey, TVal>
Run Code Online (Sandbox Code Playgroud)

我在以下类比中是否正确?

  1. An IGrouping<TKey, TVal>是一个单独的组(即键控序列),类似于KeyValuePair<TKey, TVal>值实际上是一系列元素(而不是单个元素)
  2. 一个IEnumerable<IGrouping<TKey, TVal>>是那些序列(类似于迭代时得到的结果)IDictionary<TKey, TVal>
  3. An ILookup<TKey, TVal>更像是一个IDictionary<TKey, …

c# linq group-by igrouping ilookup

75
推荐指数
3
解决办法
9990
查看次数

如何在.NET中使用Hashtables/HashSet?

我有一个约9000个产品的列表,其中一些可能有重复.

我想用产品序列号作为密钥来制作这些产品的HashTable,这样我就可以轻松找到重复的产品.

如何在C#/ .NET中使用HashTable?HashSet会更合适吗?

最终我想要一个像这样的列表:

Key-Serial:11110 - 包含:Product1
Key-Serial:11111 - 包含:Product3,Product6,Product7
Key-Serial:11112 - 包含:Product4
Key-Serial:11113 - 包含:Product8,产品9

所以,我有一个所有产品的列表,它们按照具有重复序列号的产品进行分组.这样做的"正确"方法是什么?

.net c# hashtable hashset data-structures

11
推荐指数
4
解决办法
2万
查看次数

C#使用bool函数将列表分为两个列表

说我有一个List<string> listOfStrings,我想根据某些谓词将此列表分为两个列表。例如,第一个列表应包含所有以字母开头的字符串,第二个列表则为不包含字母的列表。

现在,我将这样做:

var firstList = listOfStrings.Where(str => predicate(str));
var secondList = listOfStrings.Where(str => !predicate(str));
Run Code Online (Sandbox Code Playgroud)

有没有一种更好的方法可以做到这一点?

c# list filter

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

从List <T>对象获取所有重复项?

我有一些LINQ代码(unfortunatley不要手工!)从列表对象中获取重复项.但是,原始列表中的重复项是这样的:

Item A
Item A
Item A
Item B
Item B
Item C
Item C
Item C
Item C

etc...
Run Code Online (Sandbox Code Playgroud)

我想做的是扩展LINQ查询以获取所有这些重复实例,而不仅仅是重复对中的第一个实例,或三重奏.

什么是理想的查询来获得这个?

.net c# linq

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

标签 统计

c# ×4

.net ×2

linq ×2

data-structures ×1

filter ×1

group-by ×1

hashset ×1

hashtable ×1

igrouping ×1

ilookup ×1

list ×1