C# TLP组列表问题

C# TLP组列表问题,c#,telegram,tlsharp,C#,Telegram,Tlsharp,我无法获取组的完整列表,响应仅返回新组 我的代码: var dialogs = (TLDialogsSlice)await client.GetUserDialogsAsync(); var chats = dialogs.Chats .Where(c => c.GetType() == typeof(TLChat)) .Cast<TLChat>();

我无法获取组的完整列表,响应仅返回新组

我的代码:

var dialogs = (TLDialogsSlice)await client.GetUserDialogsAsync();
                    var chats = dialogs.Chats
                      .Where(c => c.GetType() == typeof(TLChat))
                      .Cast<TLChat>();

                    Console.WriteLine("Count : " + chats.Count());
var dialogs=(TLDialogsSlice)等待client.getUserDialogsSync();
var chats=对话。chats
.Where(c=>c.GetType()==typeof(TLChat))
.Cast();
Console.WriteLine(“Count:+chats.Count());
我使用这种方法:

public async Task<TLAbsDialogs> GetUserDialogsAsync()
        {
            var peer = new TLInputPeerChat();
            return await client.SendRequestAsync<TLAbsDialogs>(
                new TLRequestGetDialogs() { OffsetPeer = peer, Limit = int.MaxValue });
        }


var dialogs = await GetUserDialogsAsync() as TLDialogsSlice;
                    var chats = dialogs.Chats
                               .OfType<TLChat>()
                               .ToList();
                    Console.WriteLine("Count : " + chats.Count());
公共异步任务GetUserDialogsAsync() { var peer=new-TLInputPeerChat(); return wait client.SendRequestAsync( 新的TLRequestGetDialogs(){OffsetPeer=peer,Limit=int.MaxValue}); } var dialogs=wait GetUserDialogsAsync()作为TLDialogsSlice; var chats=对话。chats 第()类 .ToList(); Console.WriteLine(“Count:+chats.Count()); 当Limit=int.MaxValue0时,输出为15组,当Limit=int.MinValue时,输出为7组

但是问题是,我有超过15个组通过电报加入了为什么我不能把它们全部取出来?

试试这个:

     var dialogs = (TLDialogs)await client.GetUserDialogsAsync() as TLDialogs;
       var chats = dialogs.Chats
                   .OfType<TLChat>()
                   .ToList();
     Console.WriteLine("Count : " + chats.Count());  
var dialogs=(TLDialogs)等待client.GetUserDialogsAsync()作为TLDialogs;
var chats=对话。chats
第()类
.ToList();
Console.WriteLine(“Count:+chats.Count());
如果您想要包含消息和辅助数据的完整聊天列表,请使用messages.dialogs而不是messages.dialogsSlice

如果要返回当前用户对话框列表,请使用messages.getDialogs

在您的情况下,它是
TLDialogs

在此链接上检查API方法

如果仍有一些组未显示在返回列表中,请尝试使用偏移量=0和限制=20,然后发送另一条消息。对话框请求偏移量为20,限制=20。您可以设置自己的偏移和限制


您可以在此处找到如何设置偏移和限制

此处有一个更新

最后的代码是:

var AllChats = await client.GetAllChats();
var groups = AllChats.Chats.OfType<TLChat>().ToList();
Console.WriteLine("Count : " + groups.Count());
var AllChats=await client.GetAllChats();
var groups=AllChats.Chats.OfType().ToList();
Console.WriteLine(“Count:+groups.Count());

现在我可以使用TLSharp.Core/TelegramClient.cs中的
GetAllChats()
方法获取完整的聊天列表了

hello bro,如果匹配groupName变量,您的代码将只返回一个组,但我的情况是我需要获取我在电报中加入的所有组,我的代码只返回15个新组,但我有15个以上的组,谢谢你回复兄弟会相同的结果兄弟:/Returns只有15组我有超过15组我不知道为什么!我很困惑您已经在代码中提到了“聊天”,这是一个包含组和频道的列表(向量)。这是否与您的问题有关?使用Limit=100检查如果您使用TLDialogsSlice检查是否有任何切片,这意味着TLDialogsSlice是否有任何限制,如MaxValue为15或其他:(没有关于这个限制,但我确信核心中有一些东西需要更新。看看这个问题,它是相似的:应该有一些解决办法来处理。是的,兄弟,我尝试在TLSharp项目上做一些更新,比如将类型从int改为long/decimal,但是要得到更多的异常。。。