C# 消除字典中的空白

C# 消除字典中的空白,c#,idictionary,C#,Idictionary,我有一本字典 Dictionary<string, List<string>> dictGenSubs = new Dictionary<string, List<string>>(); Dictionary dictGenSubs=new Dictionary(); 如何确保字典中的任何记录中都没有空格?我假设您所说的只是列表中的字符串 要实现该目标,您可以使用以下代码: dictGenSubs = dictGenSubs.ToDiction

我有一本字典

Dictionary<string, List<string>> dictGenSubs = new Dictionary<string, List<string>>();
Dictionary dictGenSubs=new Dictionary();

如何确保字典中的任何记录中都没有空格?

我假设您所说的只是列表中的字符串

要实现该目标,您可以使用以下代码:

dictGenSubs = dictGenSubs.ToDictionary(
                  x => x.Key,
                  x => x.Value
                        .Select(x => x.Replace(" ", string.Empty))
                        .ToList());
这将创建一个新字典,其中新列表作为字典的值。每个列表中的每个字符串都将在添加到新列表之前进行调整

更有效的办法是更新现有词典和现有清单:

foreach(var list in dictGenSubs.Values)
{
    for(int i = 0; i < list.Count; ++i)
        list[i] = list[i].Replace(" ", string.Empty);
}
foreach(dictGenSubs.Values中的var列表)
{
对于(int i=0;i
您是说每个值中的任何字符串中都有空格吗?这里有一个简单而低效的LINQ方法:

bool hasWhitespace = dictGenSubs.SelectMany(kv => kv.Value)
       .Any(s => s.Any(char.IsWhiteSpace));

为什么要创建新词典?
Trim()
只删除前导和尾随空格,最好使用
x.Replace(“,string.empty)
@svick:因为这是使用LINQ编写词典的唯一方法。请查看更新后的答案,以获得更高效的实现。@LelloThree:我理解他的问题,好像他不希望有前导或尾随空格一样。重读一遍,我同意这一点在任何地方都没有说明。我更喜欢非LINQ方法,在我看来更容易理解。我相当确定他不想知道是否有空白,但他想消除空白(见标题)。是的,在添加空白之前删除空白似乎是最合乎逻辑的。否则,丹尼尔的第二种方法。