Я пытаюсь сравнить 2 strings[]
и отобразить как отмеченные похожие элементы.
Он отлично работает, когда первый список для сравнения имеет одно значение, но не в списке (string[]
)
@functions {
private static string[] GeoArea
{
get
{
string[] geoArea = {"Horse", "Cat", "Dog", "Dear", "Donkey", "Lamb"};
return geoArea;
}
}
string[] geoArea = GeoArea;
}
@{
string[] blablab = {"Cat", "Dog", "Dear"};
var results = string.Join(",", blablab);
}
@{
for (int s = 0; s < geoArea.Length; s++)
{
if (results != geoArea[s])
{
<input class = "check_boxes" id = "@s.ToString()" name = "District" type = "checkbox" value = "@geoArea[s]"/>
@geoArea[s]
}
else
{
<div style = "background-color: red; min-height: 50px;" >
<input class = "check_boxes" id = "@s.ToString()" name = "District" type = "checkbox" value = "@geoArea[s]" checked = "checked"/>
@geoArea[s]
</div>
}
}
}
Результаты: все элементы не воцерковлены
Спасибо.
мне нужно отобразить «Кошка, собака, дорогой» как отмеченный, а остальные не отмечены
Вы хотите использовать Contains
здесь https://learn.microsoft.com/en-us/dotnet/api/system.collections.generic.list-1.contains?view=net-5.0
@functions {
private static string[] GeoArea
{
get
{
string[] geoArea = {"Horse", "Cat", "Dog", "Dear", "Donkey", "Lamb"};
return geoArea;
}
}
string[] geoArea = GeoArea;
}
@{
string[] blablab = {"Cat", "Dog", "Dear"};
}
@{
for (int s = 0; s < geoArea.Length; s++)
{
<div style = "@(blablab.Contains(geoArea[s]) ? "background-color: red; min-height: 50px;" : "" )" >
<input class = "check_boxes" id = "@s.ToString()" name = "District" type = "checkbox" value = "@geoArea[s]" @(blablab.Contains(geoArea[s]) ? "checked" : "" ) />
@geoArea[s]
</div>
}
}
Слава была. я пытался избежать содержимого (это занимает немного больше времени в браузере). но похоже должен.
Ваш вопрос не объясняет, что именно вы хотите сравнить, но я думаю, что это то, что вы хотите:
string[] geoArea = { "Horse", "Cat", "Dog", "Dear", "Donkey", "Lamb" };
string[] blabla = { "Cat", "Dog", "Dear" };
List<string> match = new List<string>();
//Go through each entry in your blabla array
foreach(string animal in blabla)
{
//Check if the geoArea array contains the entry
if (geoArea.Contains(animal))
{
//Add the matching entries to match List
match.Add(animal);
}
}
Это добавит все совпадающие записи ваших массивов в List<string> match
.
Не забудьте добавить это пространство имен: using System.Linq;
Почему именно вы ожидаете, что
"Cat,Dog,Dear"
будет соответствовать любому из"Horse", "Cat", "Dog", "Dear", "Donkey", "Lamb"
?