Я нашел следующую реализацию Mrucache: < /p>
using System;
using System.Collections.Generic;
public class MRUCache
{
private readonly int _capacity;
private readonly Dictionary _cache;
private readonly LinkedList _mruList;
public MRUCache(int capacity)
{
_capacity = capacity;
_cache = new Dictionary();
_mruList = new LinkedList();
}
public V Get(K key)
{
if (_cache.TryGetValue(key, out var node))
{
_mruList.Remove(node);
_mruList.AddFirst(node);
return node.Value.value;
}
throw new KeyNotFoundException("The given key was not present in the cache.");
}
public void Put(K key, V value)
{
if (_cache.TryGetValue(key, out var node))
{
_mruList.Remove(node);
}
else if (_cache.Count >= _capacity)
{
var lastNode = _mruList.Last;
_cache.Remove(lastNode.Value.key);
_mruList.RemoveLast();
}
var newNode = new LinkedListNode((key, value));
_mruList.AddFirst(newNode);
_cache[key] = newNode;
}
}
public class Program
{
public static void Main()
{
var mruCache = new MRUCache(3);
mruCache.Put(1, "one");
mruCache.Put(2, "two");
mruCache.Put(3, "three");
Console.WriteLine(mruCache.Get(1)); // Outputs: one
mruCache.Put(4, "four"); // Evicts key 2 (most recently used is 1, 3, 4)
try
{
Console.WriteLine(mruCache.Get(2)); // Throws KeyNotFoundException
}
catch (KeyNotFoundException e)
{
Console.WriteLine(e.Message);
}
}
}
< /code>
Он компилирует и работает правильно из командной строки. Когда я добавил класс в существующий проект, я получаю многочисленные ошибки: < /p>
MRUCache.cs(9,55,9,56): error CS1031: Type expected
MRUCache.cs(9,55,9,56): error CS1003: Syntax error, '>' expected
MRUCache.cs(9,55,9,56): error CS1519: Invalid token '(' in class, struct, or interface member declaration
MRUCache.cs(9,63,9,64): error CS1044: Cannot use more than one type in a for, using, fixed, or declaration statement
MRUCache.cs(9,65,9,70): error CS1002: ; expected
MRUCache.cs(9,70,9,71): error CS1519: Invalid token ')' in class, struct, or interface member declaration
MRUCache.cs(9,80,9,81): error CS1519: Invalid token ';' in class, struct, or interface member declaration
MRUCache.cs(10,37,10,38): error CS1031: Type expected
MRUCache.cs(10,37,10,38): error CS1003: Syntax error, '>' expected
MRUCache.cs(10,37,10,38): error CS1519: Invalid token '(' in class, struct, or interface member declaration
MRUCache.cs(10,45,10,46): error CS1044: Cannot use more than one type in a for, using, fixed, or declaration statement
MRUCache.cs(10,47,10,52): error CS1002: ; expected
MRUCache.cs(10,52,10,53): error CS1519: Invalid token ')' in class, struct, or interface member declaration
MRUCache.cs(10,63,10,64): error CS1519: Invalid token ';' in class, struct, or interface member declaration
MRUCache.cs(15,55,15,56): error CS1031: Type expected
MRUCache.cs(15,55,15,56): error CS1003: Syntax error, '>' expected
MRUCache.cs(15,58,15,61): error CS1003: Syntax error, ',' expected
MRUCache.cs(15,65,15,70): error CS1003: Syntax error, ',' expected
MRUCache.cs(15,76,15,77): error CS1525: Invalid expression term ')'
MRUCache.cs(16,39,16,40): error CS1031: Type expected
MRUCache.cs(16,39,16,40): error CS1003: Syntax error, '>' expected
MRUCache.cs(16,42,16,45): error CS1003: Syntax error, ',' expected
MRUCache.cs(16,49,16,54): error CS1003: Syntax error, ',' expected
MRUCache.cs(16,59,16,60): error CS1525: Invalid expression term ')'
MRUCache.cs(21,49,21,53): error CS1003: Syntax error, ',' expected
MRUCache.cs(32,49,32,53): error CS1003: Syntax error, ',' expected
MRUCache.cs(43,46,43,47): error CS1031: Type expected
MRUCache.cs(43,46,43,47): error CS1003: Syntax error, '>' expected
MRUCache.cs(43,49,43,52): error CS1003: Syntax error, ',' expected
MRUCache.cs(43,56,43,61): error CS1003: Syntax error, ',' expected
MRUCache.cs(43,78,43,79): error CS1003: Syntax error, '=>' expected
MRUCache.cs(34,78,34,79): error CS1525: Invalid expression term ')'
< /code>
Я подозреваю, что это проблема с языком C#: < /p>
Инструмент командной строки - Visual Studio 2022 Командная строка разработчика v17.13.2. < /li>
существующий проект - Visual Studio 2015 и Target Pramework 4.5.2. изменить работу в существующем проекте?
Подробнее здесь: https://stackoverflow.com/questions/796 ... ual-studio
C# Mrucache компилируется в командной строке, но не сбои в Visual Studio ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
JCreator IDE: программа компилируется, но не запускается, работает в командной строке
Anonymous » » в форуме JAVA - 0 Ответы
- 26 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Необходимо создать проект C# более низкой версии в командной строке без Visual Studio.
Anonymous » » в форуме C# - 0 Ответы
- 19 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Проект собирается в командной строке и Visual Studio, но не в Rider на Mac m1pro MSB3971.
Anonymous » » в форуме C# - 0 Ответы
- 25 Просмотры
-
Последнее сообщение Anonymous
-