Copie d'une Liste à une autre Liste et sous-liste avec LINQ
J'ai une liste d'employés, et tous ont une autre liste imbriquée qui est appelé le EmployeeValuesCollection.
Donc, ma classe est quelque chose comme :-
public Employee(int employeeID, string jobTitle, int companyID,
List<EmployeeValues> employeeValuesCollection)
{
EmployeeID = employeeID;
JobTitle = jobTitle;
CompanyID = companyID;
EmployeeValuesCollection = employeeValuesCollection;
}
Maintenant je souhaite pour remplir cet objet par un autre objet avec LINQ, et pour l'instant j'ai :-
List<DataFileRow> dataFiles = dfRow.Rows;
dataFiles
.ForEach(l => employeeList
.Add(new Employee(l.EmpID, l.JobTitle, l.CompID)));
Qui fonctionne mais je ne sais pas comment ajouter la employeeValuesCollection dans la déclaration. Est-il possible de le faire?
Donc, je pensais à quelque chose comme :-
dataFiles
.ForEach(l => employeeList
.Add(new Employee(l.EmpID, l.JobTitle, l.CompID,
new List<EmployeeValuesCollection> .............)));
Merci pour votre aide et le temps.
Eh bien, cela ne va pas au travail. Vous ne pouvez pas affecter un
ok donc en gros je suis un objet, dont le salarié, puis une liste de variables attachées à chaque employé. Maintenant, je veux obtenir ces valeurs dans ma classe, afin que je puisse manipuler les données que je veux. L'objet que je reçois est exactement comme mon objet, mais avec différents noms de propriété.
comment sont
oui, fondamentalement, 1 datafile aura 1 employé, puis une Liste<> de des Valeurs, cependant il n'y a plus de détails dans la Liste<Valeur> que j'ai besoin, c'est pourquoi je suis entrain de créer mon propre objet
Ce ou ces biens fichiers de données font l'objet que vous voulez dans EmployeeValuesCollection?
List<EmployeeValuesCollection>
à un seul EmployeeValuesCollection
. Ce exactement voulez-vous lui attribuer?ok donc en gros je suis un objet, dont le salarié, puis une liste de variables attachées à chaque employé. Maintenant, je veux obtenir ces valeurs dans ma classe, afin que je puisse manipuler les données que je veux. L'objet que je reçois est exactement comme mon objet, mais avec différents noms de propriété.
comment sont
EmployeeValuesCollection
valeurs attendues (en supposant qu'ils peuvent être accolés) font-ils partie de dataFiles
?oui, fondamentalement, 1 datafile aura 1 employé, puis une Liste<> de des Valeurs, cependant il n'y a plus de détails dans la Liste<Valeur> que j'ai besoin, c'est pourquoi je suis entrain de créer mon propre objet
Ce ou ces biens fichiers de données font l'objet que vous voulez dans EmployeeValuesCollection?
OriginalL'auteur Johann | 2012-04-26
Vous devez vous connecter pour publier un commentaire.
Il sera préférable de parcourir le paramètre d'entrée employeeValuesCollection liste à l'intérieur de l'Employé constructeur pour créer une variable locale de type EmployeeValues et l'ajouter à la classe d'Employés de la liste de l'instance de la variable. Si nous utilisons EmployeeValuesCollection = employeeValuesCollection;, nous sommes en réalité de l'affectation de la référence. Donc, si nous modifier certaines valeurs de employeeValuesCollection, le même changement se reflètent à EmployeeValuesCollection.
Et vous pouvez utiliser LINQ déclaration
OriginalL'auteur Shamjith Haridasan
Vous pouvez utiliser la projection de Linq sur chaque ligne. Je vais le faire dans le " bon " linq:
Jusqu'à ce que vous indiquez quels
EmployeeValues
est en fait (et qui bien surDataFileRow
ils sont accessibles à partir de) il est difficile d'en dire plus. Mais disons que c'est juste plus de propriétés, et je vais summise ils sont comme des paires clé/valeur (malgré le nom de la pluralisation sur le type, qui est un peu déroutant).J'ai pris les noms ici à partir de votre troisième commentaire sur votre question, et à supposer que
DataFileRow
type expose ces valeurs comme un IEnumerable appeléEmployeeValues
. Basé sur que vous pouvez utiliser intérieure de la projection.OriginalL'auteur Andras Zoltan