- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我遇到了 SelectMany 表达式的问题,我无法理解。
考虑一下:我有一个此类对象的集合
class Tag
{
string DisplayText { get; set; }
string Key { get; set; }
int Value { get; set; }
}
现在我正在尝试获取所有显示文本(实际上是更复杂表达式的一部分):
var texts = AvailableTags.SelectMany(t => t.DisplayText);
现在为什么这会返回给我 IEnumerable<char>
而不是IEnumerable<string>
???我错过了什么吗?
最佳答案
如果 AvailableTags
是一个列表(IEnumerable),那么您应该简单地使用
var texts = AvailableTags.Select(t => t.DisplayText);
使用 SelectMany
得到的“奇怪”结果是由于(正如 @derloopkat 所说)字符串是 char 的集合。
所以你可以想象你的代码是这样的:
class Tag
{
List<char> DisplayText { get; set; }
string Key { get; set; }
int Value { get; set; }
}
当您使用SelectMany
时,您将获取每个DisplayText
中包含的所有字符,然后结果会被展平。
关于c# - SelectMany 有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53198540/
这个问题已经有答案了: Difference Between Select and SelectMany (21 个回答) 已关闭 5 年前。 我遇到了 SelectMany 表达式的问题,我无法理解
此查询返回员工 ID、姓名、公司 ID、公司名称和公司城市。我缺少员工电子邮件地址(emailAddress 存储在 EmployeeEmailAddress 表中)和员工电话号码(phoneNumb
文章中Deep Dive into Rx SelectMany作者在最后的注释中提到了以下内容; Note: To mitigate the ordering issue, SelectMany()
我正在解析 XML 结构,我的类如下所示: class MyXml { //... List Content { get; set; } //... } class Node
我在用户组中有动态字段,我想根据用户组中的用户来选择它们。 基本上我想模拟像 .Where(x => x.UserGroupId == x || ... 这样的查询,否则它会进行大约 20 个查询来获
您好,我正在通过 MS 101 linq 示例编写代码。 “JoinOperators”给我带来了困难,因为我试图将查询表达式重构为 lambda 语法,反之亦然。 无论如何,在例子105我看到这个查
如果没有输入和输出,很难解释这一点。我制作了一个简单的汽车示例,以避免我的项目出现不必要的细节。 我有这个列表: List cars = new List() { new car() { ca
所以我有这些部分类。有关 ParseFCIE 的部分实现和我的问题,请参见下文。 class CiscoSwitch { Dictionary VSANList = new Dictionar
众所周知,Enumerable.SelectMany将一系列序列展平为单个序列。如果我们想要一种可以压平序列序列序列的序列的方法,等等递归怎么办? 我很快想出了一个使用 ICollection 的实现
这个问题在这里已经有了答案: SelectMany() Cannot Infer Type Argument -- Why Not? (1 个回答) 关闭 7 年前。 当我尝试编译我的代码时出现以下
我正在使用 NUnit、Moq 和 StructureMap。 我有以下 NUnit 测试: [Test] public void ShouldCallCustomMethod_For
我已经尝试了很长时间来寻找一种“干净”的模式来处理具有匿名类型的 .SelectMany,当您并不总是希望返回结果时。我最常见的用例如下所示: 我们有一份客户名单,我想对其进行报告。 每个客户的数据都
假设我有以下通用组合生成器静态方法: public static IEnumerable> GetAllPossibleCombos( IEnumerable> items) { IE
我可以使用 SelectMany 展平集合中子集合的结果: // a list of Foos, a Foo contains a List of Bars var source = new Li
基本上,我想做的是左外连接两个表并将它们呈现在一个平面结果中。为简单起见,我的两个表如下所示: tot["nameA", "nameB", "nameC"] critItg["nameA", "nam
如何以另一个 .SelectMany() 形式编写此 LINQ 表达式? var result = from a in numbersA
我目前正在查询如下字典, foreach (var instance in Dict) { X += $"(Description = '{instance.Key}') OR "; } 我可以
仅使用扩展方法应用 SelectMany 获得三个或更多序列的交叉连接的最佳方法是什么?有没有其他方法可以实现交叉连接? 测试数据 var a = Enumerable.Range(11, 2); v
我正在使用 Nancy 和 RavenDB 构建一个照片库我的模型类如下: [JsonObject(IsReference=true)] public class Album { public
我想知道如何使用SelectMany()。这似乎需要很多争论,从我自己的研究中我注意到 SelectMany() 可能是所有其他选择操作的“父亲”。 最佳答案 选择多个允许您从查询源中选择一个 IEn
我是一名优秀的程序员,十分优秀!