I would like to check whether first array match with second array items, the second array have 2 text that I want to match with the first array.
Here is the code that I am using:
public static void Main()
{
List<string> ArrayToLookup = new List<string>();
ArrayToLookup.Add("Web Junior Developer");
ArrayToLookup.Add("Database Junior Specialist");
string[] JuniorJobPosition = { "Junior Developer", "Junior Specialist" };
string[] SeniorJobPosition = { "Senior Developer", "Senior Specialist" };
string JobPositionText = JobPosition.None.ToString();
if (ArrayToLookup.Any(x => JuniorJobPosition.Contains(x)))
JobPositionText = JobPosition.JuniorPosition.ToString();
if (ArrayToLookup.Any(x => SeniorJobPosition.Contains(x)))
JobPositionText = JobPosition.SeniorPosition.ToString();
Console.WriteLine(JobPositionText);
}
public enum JobPosition
{
None = 0,
JuniorPosition = 1,
SeniorPosition = 2,
OtherPosition = 3
}
basically the second array consists of text that I want to match contains against the first array.. the first text in the first array could be any with Junior Developer behind the text or Junior Specialist, and the second array just to categorize. Means if first array have Web Junior Developer and Web Junior Specialist, it will match the JuniorJobPosition variable
.Net fiddle: https://dotnetfiddle.net/UjhEaY
Anyone knows on how to solve this?
Thank you
CodePudding user response:
refactor your Conditions to
if (ArrayToLookup.Any(x => JuniorJobPosition.Contains(x)))
{
JobPositionText = JobPosition.JuniorPosition.ToString();
}
else if (ArrayToLookup.Any(x => SeniorJobPosition.Contains(x)))
{
JobPositionText = JobPosition.SeniorPosition.ToString();
}
else
{
JobPositionText = JobPosition.OtherPosition.ToString();
}
alternatively you could check
if (ArrayToLookup.Intersect (JuniorJobPosition). Any())
{
JobPositionText = JobPosition.JuniorPosition.ToString();
}
else if (ArrayToLookup.Intersect (SeniorJobPosition). Any())
{
JobPositionText = JobPosition.SeniorPosition.ToString();
}
else
{
JobPositionText = JobPosition.OtherPosition.ToString();
}
CodePudding user response:
Recorrect previous answer as the requirement clarified.
You need to check whether the text (in the second array) consists of text in ArrayLookup. Any of it fulfills the result will return true.
if (ArrayToLookup.Any(x => JuniorJobPosition.Any(y => x.Contains(y))))
JobPositionText = JobPosition.JuniorPosition.ToString();
if (ArrayToLookup.Any(x => SeniorJobPosition.Any(y => x.Contains(y))))
JobPositionText = JobPosition.SeniorPosition.ToString();
