Моя проблема в том, что я хочу проверить, содержит ли строка один или несколько из трех массивов символов, которые я настроил, и по большей части я получил его для работы, но по какой-то странной причине одна строка не работает, я хочу работать, и я не знаю, что я делаю неправильно.String содержит любой массив символов
Три массивы
а = аф строчные буквы
б = AF прописные буквы
с = 1-6 номера
программа работает: строчными, капитал, числовые, строчные + числовые, капитальные + числовые и строчные + капитальные + числовые, , но то, что не работает, является строчными буквами + капитал, который равен (c.Any(x.Contains) == false && a.Any(x.Contains) == true && b.Any(x.Contains) == true)
Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
Char[] a = { 'a', 'b', 'c', 'd', 'e', 'f' };
Char[] b = { 'A', 'B', 'C', 'D', 'E', 'F' };
Char[] c = { '1', '2', '3', '4', '5', '6' };
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = "";
if(textBox2.Text != "")
{
Char[] x = textBox2.Text.ToCharArray();
if (c.Any(x.Contains) == true && a.Any(x.Contains) ==false && b.Any(x.Contains)==false)
{
textBox1.Text = "num";
}
else if (b.Any(x.Contains) == true && c.Any(x.Contains) == false && a.Any(x.Contains) ==false)
{
textBox1.Text = "cap";
}
else if (a.Any(x.Contains) == true && c.Any(x.Contains) == false && c.Any(x.Contains) == false)
{
textBox1.Text = "low";
}
else if (c.Any(x.Contains) == false && a.Any(x.Contains) == true && b.Any(x.Contains) == true)
{
textBox1.Text = "low&cap";
}
else if (a.Any(x.Contains) == true && c.Any(x.Contains) == true && b.Any(x.Contains) == false)
{
textBox1.Text = "low&num";
}
else if (b.Any(x.Contains) == true && c.Any(x.Contains) == true && a.Any(x.Contains) == false)
{
textBox1.Text = "cap&num";
}
else if (a.Any(x.Contains) == true && b.Any(x.Contains) == true && c.Any(x.Contains) == true)
{
textBox1.Text = "cap&num&low";
}
}
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}
Спасибо вперед
EDIT
Никогда не возражаете, я просто понял это программа нашла строчными только вариант первого и не стал смотреть дальше. ..
FYI: У вас есть вопросы логики в вашем коде. – jp2code
Да, спасибо, я заметил его сразу после того, как я задал вопрос – WolfyD