tolhc1234 Δημοσ. 1 Μαρτίου 2019 Δημοσ. 1 Μαρτίου 2019 (επεξεργασμένο) Καλησπέρα, Έχω το εξής csv αρχείο col1,col2,col3,col4,col5 1,1,1,1,1 1,1,1,2,1 1,1,1,3,6 2,2,2,1,4 2,2,2,2,7 Όπου θέλω να φτιάξω 2 διαφορετικά object αυτής της μορφής: Spoiler { "object": { "col1": 1, "col2": 1, "col3": 1, "details": [ { "col4": 1, "col5": 1 }, { "col4": 2, "col5": 1 }, { "col4": 3, "col5": 6 } ] } } object2: { "object": { "col1": 2, "col2": 2, "col3": 2, "details": [ { "col4": 1, "col5": 4 }, { "col4": 2, "col5": 7 } ] } } Η γλώσσα που πρέπει να χρησιμοποιήσω είναι είτε c# είτε vb.net. Το θέμα μου είναι ότι ΟΚ το βάζω το csv σε ένα πίνακα/λίστα/dataset/whatever Πως θα γκουπάρω τις πρώτες κολώνες για να μπορώ να γεμίζω το object μου σωστά; Αυτό που έχω σκεφτεί είναι να κάνω ένα foreach row in rows σε αυτό το αντικείμενο που θα έχω γεμίσει από το csv. Αλλά εκεί, μόλις τελειώσω με το πρώτο object θέλω να τρέξω κάποια διαδικασία. Είδα με LINQ ότι μπορώ να κάνω group by, η ερώτηση είναι, μπορώ να κάνω group by πολλές στήλες ταυτόχρονα; (Δεν έχω ιδέα από LINQ) Κάποια άλλη άποψη; Edit: Θεωρούμε πάντα ότι οι στήλες col1,col2,col3 θα είναι πάντα ίδιες για κάθε object για να μπορούμε να κάνουμε group by Επεξ/σία 1 Μαρτίου 2019 από tolhc1234
παπι Δημοσ. 1 Μαρτίου 2019 Δημοσ. 1 Μαρτίου 2019 static void Main(string[] args) { try { var input = @"col1,col2,col3,col4,col5 1,1,1,1,1 1,1,1,2,1 1,1,1,3,6 2,2,2,1,4 2,2,2,2,7"; var lines = input.Split('\n'); var objects = lines //vgale toys headers .Skip(1) //xwrise th grammh me komma .Select(x => x.Split(',')) //vale ta 3 prwta se ena tuple gia na ginei sigrish .Select(x => new { obj = new Tuple<string, string, string>(x[0], x[1], x[2]), col4 = x[3], col5 = x[4] }) //kane groupby tria prwta .GroupBy(x => x.obj) //vele ta tria prwta sto object .Select(x => new { col1 = x.Key.Item1, col2 = x.Key.Item2, col3 = x.Key.Item3, //vale ta 2 teleytaia se lista details = x.Select(q => new { q.col4, q.col5 }).ToList() }); foreach (var obj in objects) { Console.WriteLine("object {0},{1},{2}", obj.col1, obj.col2, obj.col3); foreach (var detail in obj.details) { Console.WriteLine("\tdetails {0},{1}", detail.col4, detail.col5); } } } catch (Exception ex) { Console.WriteLine(ex.Message); } Console.Read(); } 1 2
tolhc1234 Δημοσ. 1 Μαρτίου 2019 Μέλος Δημοσ. 1 Μαρτίου 2019 WOW φίλε ευχαριστώ πολύ νομίζω καλύφθηκα πλήρως, σε ευχαριστώ πολύ για το χρόνο σου!
metaptixiako Δημοσ. 29 Μαΐου 2021 Δημοσ. 29 Μαΐου 2021 Καλησπέρα. Έιχα ανοίξει και άλλο θέμα και το είχα γράψει, κάνω και μια προσπάθεια εδω μηπως το δουν και άλλοι. Έχω ενα dataset απο το kaggle και πρέπει να βρω το h-index , τις ετεροαναφορές του, ποιός το έχει χρησιμοποιήσει, τι έργασία έκανε κτλ... , γιατί θέλω να δω αν μπορώ να το χρησιμοποιήσω στην διπλωματική μου και πρέπει να ενημερώσω τον καθηγητή. Έψαξα αρκετά αλλά δεν μπορώ να το βρω, πως δηλαδή μπορώ να εντοπίσω τις ετεροαναφορές για το dataset αυτό. Έχετε καμιά ιδέα? Ευχαριστώ πολύ
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα