我需要找出如何输出包含 "a"
的所有单词。我有一个string
和所有月份,并想将包含 "a"
的月份输出到控制台。
这是我到目前为止所拥有的
string[] Månedsdage = {
"Januar", "Februar", "Marts",
"April", "Maj", "Juni",
"juli", "August", "September",
"Oktober", "November", "December",
"Bichat" };
for (int i = 0; i < Månedsdage.Length; i++)
{
for (int j = 0; j < Månedsdage[i].Length; j++)
{
if (Månedsdage[i].Substring(j,1) == "a")
{
Console.WriteLine("Alle måneder med A: ");
Console.WriteLine(Månedsdage[j]);
Console.ReadLine();
}
}
}
答案 0 :(得分:6)
那
string[] result = Månedsdage.Where(x=> x.ToLower().Contains('a')).ToArray();
.Contains():要获取所有包含字母a
的单词,我们使用了字符串方法。此扩展方法检查给定字符串中是否存在作为参数传递的子字符串。
Where():为了对字符串数组中的每个元素应用相同的条件,我们使用了Linq扩展方法。
ToLower():此方法用于将字符串的所有字符转换为小写。因此,它不会错过“ A”和“ a”。 ToLower()
将在结果数组中包含April
。如果您不希望April
进入数组,请不要使用ToLower()
POC:.net Fiddle
输出:
Januar
Februar
Marts
April /*ToLower() ;)*/
Maj
August
Bichat
答案 1 :(得分:1)
很遗憾,For each xWorksheet in ActiveWorkbooks.Worksheets
lastrow = xWorksheet.Cells(Rows.Count, 1).End(xlUp).row
Range("A" & lastrow + 3).Select
xWorksheet.Pictures.Insert("filepath\file name.jpg").Select
Next xWorksheet
不接受 Contains
,但是StringComparison
可以:我们可以尝试过滤掉{{1} 1}}个索引不是不是负数(即IndexOf
出现在word
中)
"a"
输出:
"a"
答案 2 :(得分:0)
这是一个不使用Linq
的示例。
您只需要使用一个循环和IndexOf
即可实现所需的功能:
string[] Månedsdage = {
"Januar", "Februar", "Marts",
"April", "Maj", "Juni",
"juli", "August", "September",
"Oktober", "November", "December",
"Bichat" };
for (int i = 0; i < Månedsdage.Length; i++)
{
// if IndexOf("a") >= 0 then there is a match
if (Månedsdage[i].IndexOf("a", StringComparison.CurrentCultureIgnoreCase) > -1)
{
Console.WriteLine("Alle måneder med A: ");
Console.WriteLine(Månedsdage[i]);
}
}
如果您不希望"A"
匹配,请删除StringComparison.CurrentCultureIgnoreCase
中的IndexOf
。
或者,您可以使用ToCharArray()
并使用2个循环:
foreach (string word in Månedsdage)
{
foreach(char c in word.ToCharArray())
{
if (c == 'a' || c == 'A')
{
Console.WriteLine("Alle måneder med A: ");
Console.WriteLine(word);
// a match has been found, break out of the inner loop and move onto next word
break;
}
}
}