I want to return a multidimensional array for storage in a session, but not sure how to return it from linq:
public string[] GetCountryAndManufacturerForUser(int userId)
{
var array = (from xx in _er.UserRoles
join xy in _er.Countries on xx.CountryId equals xy.Id
join xz in _er.Manufacturers on xx.ManufacturerId equals xz.Id
where xx.UserId == userId
select new { xy.Name, xz.Description }).ToArray();
return??
}
I know that I am doing something wrong here, I just do not know what.
Edit:
The following fields must be returned: xy.Name, xz.Description
as:
{ "1", "aaa" },
{ "2", "bbb" }
Edit:
I tried the example below, and they did not get to the place where I need to be - I thought something like the following should work:
public string[,] GetCountryAndManufacturerForUser(int userId)
{
var array = (from xx in _er.UserRoles
join xy in _er.Countries on xx.CountryId equals xy.Id
join xz in _er.Manufacturers on xx.ManufacturerId equals xz.Id
where xx.UserId == userId
select new { xy.Name, xz.Description }).ToArray();
return array;
}
But he complains about the returned array;
Edit:
The closest I got the following:
public string[][] GetCountryAndManufacturerForUser(int userId)
{
var countryArray = (from xx in _er.UserRoles
join xy in _er.Countries on xx.CountryId equals xy.Id
join xz in _er.Manufacturers on xx.ManufacturerId equals xz.Id
where xx.UserId == userId
select xy.Name).ToArray();
var manufacturerArray = (from xx in _er.UserRoles
join xy in _er.Countries on xx.CountryId equals xy.Id
join xz in _er.Manufacturers on xx.ManufacturerId equals xz.Id
where xx.UserId == userId
select xz.Description).ToArray();
return new string[][] { countryArray, manufacturerArray };
}
but this returns two arrays:
var userManuCountry = _userRoleRepository.GetCountryAndManufacturerForUser(u.Id);
userManuCountry {string[2][]} string[][]
[0] {string[6]} string[]
[0] "Germany" string
[1] "France" string
[2] "United Kingdom" string
[3] "Netherlands" string
[4] "United States" string
[5] "United Kingdom" string
- [1] {string[6]} string[]
[0] "Dove" string
[1] "Dove" string
[2] "Dove" string
[3] "Dove" string
[4] "Dove" string
[5] "Sure" string