C# 检查textbox是否与其他textbox具有相同的值

C# 检查textbox是否与其他textbox具有相同的值,c#,asp.net,validation,C#,Asp.net,Validation,我想检查我的文本框中是否有类似的值,我有10个文本框,点击按钮我想验证是否有相同的值 for (int c = 1; c <= 10; c++) { TextBox check_subjName = table_textboxes.FindControl("subject_name" + c.ToString()) as TextBox; for (int b = 1; b <= 10; b++) { TextBox check_subjNa

我想检查我的文本框中是否有类似的值,我有10个文本框,点击按钮我想验证是否有相同的值

for (int c = 1; c <= 10; c++)
{
    TextBox check_subjName = table_textboxes.FindControl("subject_name" + c.ToString()) as TextBox;

    for (int b = 1; b <= 10; b++)
    {
        TextBox check_subjName2 = table_textboxes.FindControl("subject_name" + b.ToString()) as TextBox;

        if (c != b)
        {
            if (check_subjName.Text == check_subjName2.Text)
            {
              //there are similar values
            }
        }
    }
}

for(int c=1;c),因此如果所有文本框都有不同的值,则它是有效的。您可以使用LINQ:

List<string> textList = table_textboxes.Controls.OfType<TextBox>()
    .Where(txt => txt.ID.StartsWith("subject_name"))
    .Select(txt => txt.Text.Trim())
    .ToList();
var distinctTexts = new HashSet<string>(textList);
bool allDifferent = textList.Count == distinctTexts.Count;
List textList=table_textboxs.Controls.OfType()
.Where(txt=>txt.ID.StartsWith(“主题名称”))
.Select(txt=>txt.Text.Trim())
.ToList();
var distinctTexts=新哈希集(textList);
bool allDifferent=textList.Count==distinctTexts.Count;
这里有一个稍微优化的方法(在这种情况下是微观优化):

var textList=table_textboxs.Controls.OfType()
.Where(txt=>txt.ID.StartsWith(“主题名称”))
.Select(txt=>txt.Text.Trim());
HashSet=newhashset();
bool allDifferent=textList.All(set.Add);

还有,什么是相似值?如果你是说相等,不要说相似。我们为科学所做的事情。=)@J.Steen:我添加了另一个我最喜欢的;)
var textList = table_textboxes.Controls.OfType<TextBox>()
    .Where(txt => txt.ID.StartsWith("subject_name"))
    .Select(txt => txt.Text.Trim());
HashSet<string> set = new HashSet<string>();
bool allDifferent = textList.All(set.Add);