Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Выборка LinqToObject / 4 сообщений из 4, страница 1 из 1
24.01.2011, 12:05
    #37074973
gds
gds
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка LinqToObject
Народ, подскажите как правильно преобразовать тип. Пробовал по разному все равно не выходит.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
// List<string> this._file_list
var tmp_res = Directory.GetFiles(ScanDir);            

            if (this._file_list == null)
            {
                this._file_list = tmp_res.ToList();
                this._file_list.ForEach(delegate(string obj) { this.AddLog(string.Format("File {0} has been created",obj)); });
            }
            else
            {
                // created
                var res1 = from cr in tmp_res
                           where !this._file_list.Contains(cr)
                           select cr;
// тут работает замечательно.
                List<string> l1 = res1.ToList();
                l1.ForEach(delegate(string obj) { this.AddLog(string.Format("File {0} has been created",obj)); });

                // deleted     
                string[] st = this._file_list.ToArray();
                var res2 = from del in st
                                    where !tmp_res.Contains(st)
// тут ругается, типо неправильно приведены типы.
/*
Error	1	'string[]' does not contain a definition for 'Contains' and the best extension method overload 'System.Linq.ParallelEnumerable.Contains<TSource>(System.Linq.ParallelQuery<TSource>, TSource)' has some invalid arguments	

Error	2	Instance argument: cannot convert from 'string[]' to 'System.Linq.ParallelQuery<System.Collections.Generic.List<string>>'	*/
                           select del;
                //ForEach(delegate(string obj) { this.AddLog(string.Format("File {0} has been deleted",obj)); });
                this._file_list=null;
            }
пробывал с List<string> один хрен. ошибка
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
var res2 = from del in this._file_list
                                    where !tmp_res.Contains(this._file_list)
                           select del;
/*
Error	1	'string[]' does not contain a definition for 'Contains' and the best extension method overload 'System.Linq.ParallelEnumerable.Contains<TSource>(System.Linq.ParallelQuery<TSource>, TSource)' has some invalid arguments	

Error	2	Instance argument: cannot convert from 'string[]' to 'System.Linq.ParallelQuery<System.Collections.Generic.List<string>>'	
*/
Как в этом случае правильно преобразовать? Да быстродействие обработки - критично.

Одна из основных проблем человека - проблема выбора.
...
Рейтинг: 0 / 0
24.01.2011, 12:10
    #37074994
gds
gds
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка LinqToObject
пробывал даже привести к одному типу. все равно ошибка понвертации.
Код: plaintext
1.
2.
3.
4.
5.
6.
// this._file_list - List<string>
List<string> st = tmp_res.ToList<string>();  
                var res2 = from del in st
                                    where !st.Contains(this._file_list)
                           select del;
               
Код: plaintext
1.
2.
3.
Error	1	The best overloaded method match for 'System.Collections.Generic.List<string>.Contains(string)' has some invalid arguments

Error	2	Argument 1: cannot convert from 'System.Collections.Generic.List<string>' to 'string'
...
Рейтинг: 0 / 0
24.01.2011, 12:12
    #37075005
gds
gds
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка LinqToObject
gdsпробывал даже привести к одному типу. все равно ошибка понвертации.
Код: plaintext
1.
2.
3.
4.
5.
6.
// this._file_list - List<string>
List<string> st = tmp_res.ToList<string>();  
                var res2 = from del in st
                                    where !st.Contains(this._file_list)
                           select del;
               
Код: plaintext
1.
2.
3.
Error	1	The best overloaded method match for 'System.Collections.Generic.List<string>.Contains(string)' has some invalid arguments

Error	2	Argument 1: cannot convert from 'System.Collections.Generic.List<string>' to 'string'

опечатка
Код: plaintext
1.
2.
3.
4.
var res2 = from del in this._file_list
                                    where !st.Contains(this._file_list)
                           select del;
                
...
Рейтинг: 0 / 0
24.01.2011, 12:17
    #37075026
gds
gds
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выборка LinqToObject
Блин сам ложанулся, нашел ошибку. Ошибка в синтаксисе.
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Выборка LinqToObject / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]