为了简单起见,我有以下字典,我为每个字符串键填充了未知数量的字符串.我还有以下字符串列表.
var dict = new Dictionary<string, List<string[]>>();
IList<string> headerList = new List<string>();
Run Code Online (Sandbox Code Playgroud)
如何检查列表中的字符串是否是字典中的值?我的数据看起来与此类似:
Key Value
----- ------------------
Car honda, volks, benz
Truck chevy, ford
Run Code Online (Sandbox Code Playgroud)
我需要检查"honda"是否包含在字典值中.我想我需要做类似以下的事情来查看值是否包含列表,其中包含有问题的字符串.请记住,我对C#还不熟悉.
foreach (string header in headerList)
{
// This is wrong, I don't know what to put in the if statement
if (dict.ContainsValue(r => r.Contains(header)))
{
// do stuff
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个关于TypeScript的简化问题,其中“键”和“值”正在切换。为了演示这个问题,我有以下地图,我自己将其存储在文件中:
零件
export const PART_DATA : Map<string, string> = new Map(
[
[ 'PI', 'Piping' ],
[ 'TC', 'Truck Components' ],
[ 'BE', 'Brake Equipment' ]
]);
Run Code Online (Sandbox Code Playgroud)
...,我们将在实现此Map的其他文件(ProcessParts.ts)中调用它,如下所示:
import {Component, OnInit, NgModule} from '@angular/core';
import {PART_DATA} from './Parts';
export class ProcessParts {
ngOnInit(){
PART_DATA.forEach((key: string, value: string) => {
console.log("here is " + key + ', ' + value);
});
}
}
Run Code Online (Sandbox Code Playgroud)
...我们的输出将开始如下所示:
here is Piping, PI
Run Code Online (Sandbox Code Playgroud)
...何时应交换键和值。这是不是一个巨大的问题,但我用了几个映射设置了这样的PART_DATA例子,但这是我第一次看到这个问题,当我循环访问该地图(这个这个岗位上迭代迭代一个TS地图) 。为了清楚起见,我首先需要遍历Map,以便可以向UI显示一些选项。
我在下面简化了 groupby 代码,我知道每个组最多存在两条记录,每个组按字符串数组中索引二处的值分组。我想遍历 IGrouping 中的键列表,并在每个组中组合一些值,然后将该结果添加到最终列表中,但我是 LINQ 的新手,所以不完全知道如何访问这些第一个和/或第二个索引处的值。
谁能解释一下如何做到这一点?
从 var 行派生的每个 Group 是这样的:
key string[]
---- -------------
123 A, stuff, stuff
123 B, stuff, stuff
Run Code Online (Sandbox Code Playgroud)
我希望结果是一个 string[] ,它组合了“最终”列表中每个组的元素,例如:
string[]
-------
A, B
Run Code Online (Sandbox Code Playgroud)
我的代码:
var lines = File.ReadAllLines(@path).Skip(1).Select(r => r.Split('\t')).ToList();
List<string[]> final = new List<string[]>();
var groups = lines.GroupBy(r => r[2]);
foreach (var pairs in groups)
{
// I need to combine items in each group here; maybe a for() statement would be better so I can peek ahead??
foreach (string[] …Run Code Online (Sandbox Code Playgroud)