Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取字符串中包含的实例列表中的计数_C#_.net_Linq_Lambda - Fatal编程技术网

C# 获取字符串中包含的实例列表中的计数

C# 获取字符串中包含的实例列表中的计数,c#,.net,linq,lambda,C#,.net,Linq,Lambda,我有一个字符串,最多包含9个从1到9的唯一数字(myString),例如“12345” 我有一个字符串列表{“1”},{“4”}(myList)。。等等 我想知道字符串(myString)中有多少实例包含在列表(myList)中,在上面的示例中,这将返回2 大概是 count = myList.Count(myList.Contains(myString)); 如果需要,我可以将myString更改为列表 非常感谢 Joe这是一种方法,但仅限于1个字符的匹配。对于您描述的1-9的数字场景,这很

我有一个字符串,最多包含9个从1到9的唯一数字(myString),例如“12345”

我有一个字符串列表{“1”},{“4”}(myList)。。等等

我想知道字符串(myString)中有多少实例包含在列表(myList)中,在上面的示例中,这将返回2

大概是

count = myList.Count(myList.Contains(myString));
如果需要,我可以将myString更改为列表

非常感谢


Joe

这是一种方法,但仅限于1个字符的匹配。对于您描述的1-9的数字场景,这很好。请注意
s[0]
用法,它将列表项作为字符引用。例如,如果列表中有“12”,它将无法正常工作

string input = "123456123";
var list = new List<string> { "1", "4" };
var query = list.Select(s => new
                {
                    Value = s,
                    Count = input.Count(c => c == s[0])
                });

foreach (var item in query)
{
    Console.WriteLine("{0} occurred {1} time(s)", item.Value, item.Count);
}
试一试


我会尝试以下方法:

count = mylist.Count(s => myString.Contains(s));

您需要什么并不十分清楚,但以下是一些有帮助的选项:

myList.Where(s => s == myString).Count()


第一个将返回列表中与您相同的字符串数,第二个将返回包含您的字符串数。如果两者都不起作用,请把你的问题说得更清楚。

如果
myList
只是
List
,那么这应该可以:

int count = myList.Count(x => myString.Contains(x));
如果
myList
List

试一试

仅当myList中的项目是个位数时,此选项才起作用

编辑:正如您可能注意到的,这将多次将myString转换为char数组,因此最好

var myStringArray = myString.ToCharArray();
var count = myList.Count(x => myStringArray.Contains(x[0]));

最好使用
myList.Count(s=>s.Contains(myString))
,因为它更优化。
myList.Where(s => s.Contains(myString)).Count()
int count = myList.Count(x => myString.Contains(x));
int count = myList.SelectMany(x => x).Count(s => myString.Contains(s));
var count = myList.Count(x => myString.ToCharArray().Contains(x[0]));
var myStringArray = myString.ToCharArray();
var count = myList.Count(x => myStringArray.Contains(x[0]));